用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)) { ... } 捕获. 总感觉这种方式让人 ...
随机推荐
- linux下如何安装软件(转载)
来源:http://zhidao.baidu.com/link?url=5oR8WxygPvVMhSZvXQahYKm01JPTmQnEUjbQF562Yxgd3r6bYpki1ZPcHAsij6E4 ...
- OpenCV 入门示例之一:显示图像
前言 本文展示一个显示图像的示例程序,它用于从硬盘加载一副图像并在屏幕上显示. 代码示例 // 此头文件包含图像IO函数的声明 #include "highgui.h" int m ...
- .Net 中的反射(动态创建类型实例)
动态创建对象 在前面节中,我们先了解了反射,然后利用反射查看了类型信息,并学习了如何创建自定义特性,并利用反射来遍历它.可以说,前面三节,我们学习的都是反射是什么,在接下来的章节中,我们将学习反射可以 ...
- ZooKeeper学习笔记(一)
引导 刚开始学习ZooKeepter,看的书是[O'Reilly Media] ZooKeeper.下面的内容基本上是该书的翻译,很多语句也存在问题,大致读还是没问题的,自己在学习中记录. 第一章 Z ...
- JQuery 如何获取select选中的值
一.html代码 <select id="ddl"> <option value="100" emoney="12" &g ...
- intelliJ IDEA springMVC 搭建配置
1.添加参数 archetypeCatalog=internal
- CentOS 64位 6.4 命令行安装 oracle 11g 客户端
1.官网下载oracle 客户端(需登录) http://download.oracle.com/otn/linux/instantclient/11204/oracle-instantclient1 ...
- MySQL 的“root”用户修改密码
MySQL 的“root”用户默认状态是没有密码的,所以在 PHP 中您可以使用 mysql_connect("localhost","root"," ...
- Protocol_BGP
BGP协议 作者:Danbo 2015-7-8 BPG最重要的就是属性,下面我们针对路径属性分析一下.
- LightOJ1220 —— 质因数分解
题目链接:https://vjudge.net/problem/LightOJ-1220 1220 - Mysterious Bacteria PDF (English) Statistics ...