用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)) { ... } 捕获. 总感觉这种方式让人 ...
随机推荐
- Tika解析word文件
Apache POI - HWPF and XWPF - Java API to Handle Microsoft Word Files http://poi.apache.org/document/ ...
- JavaSE 文件递归之删除&获取文件夹文件夹中全部的以.jpg的文件的绝对路径
1.递归删除文件 假设一个文件夹以下还有子文件夹,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件文件夹中的全部文件以及文件夹 package cn.itcast.digui; impor ...
- Oracle中,将毫秒数转换为timestamp类型的两种方法
在许多场景中,开发人员习惯用1970-01-01 00:00:00.000以来的毫秒数来表示具体的时间,这样可以将数据以NUMBER类型存储到数据库中,在某些时候方便比较,同样,有些时候我们需要 把这 ...
- windows 打开文件夹
@echo off rem 建立链接 net use \\192.168.2.3\share /user:username password rem 打开共享文件夹 explorer \\192.16 ...
- 【BZOJ3041】水叮当的舞步 迭代深搜IDA*
[BZOJ3041]水叮当的舞步 Description 水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变.为了讨好她的偶像虹猫,水叮当决定在地毯上跳 ...
- WEBRTC开发入门
WEBRTC "WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6 ...
- SEO大师分析的八条
- mybatis入门(七)
mybatis入门--添加一个用户 //添加用户 @Test public void insertUserTest() throws IOException { // 通过工厂得到SqlSession ...
- 基于地理位置信息的traceroute
我们在机房选择.測试网络的质量的时候,往往仅仅依据跳数.延迟.抖动.网络吞吐量等指标来衡量,非常多时候跳数并不能全然显示网络拓扑优劣,于是写了个traceroute结合whois的小脚本来直观显示每一 ...
- apache下实现301永久性重定向的方法
因为博客是使用了www.php100.com作为博客域名,所以想实现php100.com全部重定向(跳转)到www.php100.com.同时按照google的建议,使用服务器端 301 重定向,为了 ...