用spin和edit控件来用spin控制edit里面小数的增减
1.响应SPIN的消息,就是点SPIN的上键头和下键头的消息,在这个消息里改变值是以0.1步进量增减.
2.使用UpdateData(FALSE)来更新EDIT的关联的double型的变量。

创建步骤
1、首先新建一个Dialog窗口,在新建窗口中右击鼠标,添加类,如:CSpinAndEditDlg。
2、然后通过工具箱把Spin Control控件、Edit Control控件分别拖拽到Dialog窗口中,
Spin属性中设置
Alignment: Right Align
Auto Buddy:True
Set Buddy Integer: True(ps:可以不选)
"Ctrl+D"设置Edit和Spin的Tab顺序(例如Edit为1,Spin为2)(ps:如果不设置Tab 顺序,spin会显示不出来)
3、双击Spin Control控件即可在CSpinAndEditDlg.cpp中生成如下几段相应代码。
SpinAndEditDlg.h
#pragma once
//ps:测试spin按钮上下加减 // CSpinAndEditDlg 对话框 class CSpinAndEditDlg : public CDialogEx
{
DECLARE_DYNAMIC(CSpinAndEditDlg) public:
CSpinAndEditDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CSpinAndEditDlg(); // 对话框数据
enum { IDD = IDD_DLG_SPIN_EDIT }; protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP()
public:
afx_msg void OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult);
// double m_dNum;
afx_msg void OnBnClickedButton1();
double m_dNum;
};
SpinAndEditDlg.cpp
// SpinAndEditDlg.cpp : 实现文件
// #include "stdafx.h"
#include "LoadDllDemo.h"
#include "SpinAndEditDlg.h"
#include "afxdialogex.h"
#define dMax 10.0
#define dMin 0.0 // CSpinAndEditDlg 对话框 IMPLEMENT_DYNAMIC(CSpinAndEditDlg, CDialogEx) CSpinAndEditDlg::CSpinAndEditDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CSpinAndEditDlg::IDD, pParent)
, m_dNum()
{ m_dNum = 0.5;
} CSpinAndEditDlg::~CSpinAndEditDlg()
{
} void CSpinAndEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
// DDX_Text(pDX, IDC_EDIT1, m_dNum);
DDX_Text(pDX, IDC_EDIT1, m_dNum);
DDV_MinMaxDouble(pDX, m_dNum, dMin, dMax);
} BEGIN_MESSAGE_MAP(CSpinAndEditDlg, CDialogEx)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1, &CSpinAndEditDlg::OnDeltaposSpin1)
ON_BN_CLICKED(IDC_BUTTON1, &CSpinAndEditDlg::OnBnClickedButton1)
END_MESSAGE_MAP() // CSpinAndEditDlg 消息处理程序 void CSpinAndEditDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(!UpdateData(TRUE))
{
m_dNum = ;
UpdateData(FALSE);
return;
}
if(pNMUpDown->iDelta == -) // 如果此值为-1 , 说明点击了Spin的往上箭头
{
m_dNum = m_dNum + 0.1;
}
else if(pNMUpDown->iDelta == ) // 如果此值为, 说明点击了Spin的往下箭头
{
m_dNum = m_dNum - 0.1;
}
if(m_dNum > dMax || m_dNum < dMin)
{
UpdateData(TRUE);
}
UpdateData(FALSE);
*pResult = ;
} void CSpinAndEditDlg::OnBnClickedButton1()
{
UpdateData(TRUE);
m_dNum;
}
用spin和edit控件来用spin控制edit里面小数的增减的更多相关文章
- C++ 一个程序获取另一个程序Edit控件的内容
//一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...
- 增加duilib edit控件的提示功能和多种文字颜色
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41786407 duilib的CEditUI控件内部使用了win32的原生 ...
- emWin(ucGui) Edit控件数值模式 ——符号编辑 worldsing
emWin(ucGui) Edit控件数值模式出现负数值编辑时,如果键盘按键全可以设置独立的"-","+"键,这样可以正常编辑正数和负数,但是要没有设置这两个键 ...
- emWin(ucGui)的Edit控件退格处理方法 worldsing
在enWin(ucGui)中EDIT控件在数值模式(十进制/十六进制/二进制/浮点数)下编辑是,无法使用BackSpace键进行退格,主要涉及到的函数有: EDIT_SetBinMode() EDIT ...
- delphi Components[i]清除所有edit控件中的内容
(* 一般的清空combobox方法 combobox1.clear; ... combobox9.clear; *) procedure TForm1.Button1Click(Sender: ...
- Windows获取其他进程中Edit控件的内容
最近做的MFC项目中,有个获取其他进程中Edit控件内容的需求,本来以为是个很简单的问题,但是来来回回折腾了不少时间,发博记录一下. 刚开始拿到这个问题,很自然的就想到GetDlgItemText() ...
- vc 在edit控件中动态插入数据滚动显示
内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->G ...
- 修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式
Delphi 10.1.2 edit控件在android默认的复制.剪切和粘贴样式太丑,经悟能-DelphiTeacher的提示,用最简单的代码修改后稍有改观. 默认的样式: 修改后的样式: 修改FM ...
- win32: 文本编辑框(Edit)控件响应事件
过去几年,关于文本编辑框(Edit)控件的响应事件,我都是在主程序 while(GetMessage(&messages, NULL, 0, 0)) { ... } 捕获. 总感觉这种方式让人 ...
随机推荐
- SAP-ABAP系列 第二篇SAP ABAP开发基础
第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...
- P1355 神秘大三角
题目描述 判断一个点与已知三角形的位置关系. 输入输出格式 输入格式: 前三行:每行一个坐标,表示该三角形的三个顶点 第四行:一个点的坐标,试判断该点与前三个点围成三角形的位置关系 (详见样例) 所有 ...
- EasyDarwin开源流媒体服务器高性能设计之无锁队列
本文来自EasyDarwin团队Fantasy(fantasy(at)easydarwin.org) 一. EasyDarwin任务队列实现 EasyDarwin的任务队列是通过OSQueue类来组织 ...
- bc - An arbitrary precision calculator language
bc(1) General Commands Manual bc(1) NAME bc - An arbitrary precision calculator language SYNTAX bc [ ...
- Ace(二)Demo示例
Client: #include "ace/Log_Msg.h" #include "ace/OS.h" #include "ace/Service_ ...
- LuNamp和LuManager的目录结构
/|---- etc/|-------- my.cnf #mysql配置文件|-------- ipfw.conf #ipfw防火墙的配置文件(仅FreeBSD)|---- home/|------- ...
- jquery中attr和prop的区别—判断复选框选中状态
最近项目中需要用jquery判断input里checkbox是否被选中,发现用attr()获取不到复选框改变后的状态,最后查资料发现jQuery 1.6以后新增加了prop()方法,借用官方的一段描述 ...
- complex brain network
Organization, development and function of complex brain networks The Brain as a Complex System: Usin ...
- Jmeter创建一个简单的http接口用例
1.新建线程组 添加->Threads(Users)->线程组 线程组用来模拟用户进程. 2.添加http信息头管理器 添加->配置元件->http信息头管理器 Systemi ...
- codeforces B. Bear and Strings 解题报告
题目链接:http://codeforces.com/problemset/problem/385/B 题目意思:给定一条只有小写英文组成的序列,需要找出至少包含一个“bear”的单词的子序列个数.注 ...