用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)) { ... } 捕获. 总感觉这种方式让人 ...
随机推荐
- python中的and和or(转载)
python中的and和or 4.6. and 和 or 的特殊性质在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一 ...
- android启动另一应用
http://www.2cto.com/kf/201203/122910.html Android SDK中有这样一个API: public abstract Intent getLaunchInte ...
- rac_udev建立磁盘方式安装grid时不识别磁盘
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- ABAP抓取异常 try ,endtry.
DATA: O_CX TYPE REF TO CX_ROOT. TRY . MOVE LS_UPLOAD-MENGE TO LS_OUTPUT-MENGE. CATCH CX_ROOT INTO O_ ...
- SpringBoot-(5)-properties的使用
项目中经常需要进行一些配置,一般会使用springboot默认的application.properties文件,也可以自己创建配置文件 一,application.properties配置 logg ...
- Cocos2d-x之CCMenu理解
Menu创建菜单: Cocos2d-x下的菜单创建包括: 1.CCMenuItemFont 字体按钮创建 CCMenuItemFont * onlineVideo = MenuItemFont: ...
- (转)windows一台电脑添加多个git账号
版权声明:技术总结来自互联网,书籍,以及工作积累.如果觉得我的总结有帮助,欢迎分享. https://blog.csdn.net/qq1332479771/article/details/701496 ...
- Android项目中JNI技术生成并调用.so动态库实现详解
生成 jni方式有两种:一种是通过SWIG从C++代码生成过度的java代码:另一种是通过javah的方式从java代码自动生成过度的C++代码.两种方式下的步骤流程正好相反. 第一种方式:由于需要配 ...
- Kotlin静态方法
Kotlin静态方法 工具类 全都是静态方法的情况 : class 类名 改为 object 类名 即可 package redwolf.com.moreimageupload import okht ...
- Tkinter图片按钮
imgBtn = tk.PhotoImage(file='test.png') tk.Button(image=imgBtn).pack() tk.mainloop() 转载,来源简书评论,地址:ht ...