vs2008 edit spin 十六进制实现
由于做的东西中涉及到一个控件,查了一下叫spin box,但是,spin box控件只在对话框里面才能使用,而且比较麻烦,更何况还要用十六进制,查到就有可多edit+spin来做,后来找到一个样例着手开始做,做到后来发现只支持十进制,于是就自己尝试着来做
首先说明一下我做的spin box的目的效果:
1、可以直接输入
2、点击上下箭头加减1
说明:所有过程都是十六进制
接下来介绍一下edit+spin的使用
1、控件属性设置:
Spin:①Auto Buddy:True②Set Buddy Integer:False③Arrow Keys:True
关于第二点说明一下:本来参考别人的是True,后来发现一直是十进制,十六进制显示不了,查看微软注释就明白了:Set Buddy Integer,指定数值调节钮控件在它的位置改变时设置合作者窗口的文本。
Edit:默认
2、变量定义及事件添加
①在窗口类里面定义两个变量:
CSpinButtonCtrl m_spinAddress;
CString m_editAddress;
②DoDataExchange(CDataExchange* pDX)函数里面关联控件跟变量(关于这个参考MSDN)
DDX_Control(pDX, IDC_SPIN_ADDRESS, m_spinAddress);
DDX_Text(pDX, IDC_EDIT_ADDRESS, m_editAddress);
③在spin控件添加UDN_DELTAPOS(指示控件的位置即将更改)
3、OnDeltaposSpinAddress(NMHDR *pNMHDR, LRESULT *pResult)事件内容
void CSolutionDlg::OnDeltaposSpinAddress(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); //用控件的值更新控件变量的值 if(pNMUpDown->iDelta > ) //spin往上
{
if(!m_editAddress.IsEmpty())
{
int value = _tcstoul(m_editAddress, , );
value ++;
m_editAddress.Format("%X", value);
}
}
else if(pNMUpDown->iDelta < )
{
if(!m_editAddress.IsEmpty())
{
int value = _tcstoul(m_editAddress, , );
value --;
m_editAddress.Format("%X", value);
}
} UpdateData(FALSE); //用控件变量的值更新控件
*pResult = ;
}
补充小知识:UpdateData()
对于可以接收数据的控件,如编辑控件来说,UpdateData()函数至关重要。当控件内容发生变化时,对应的控件变量的值并没有跟着变化,同样,当控件变量值变化时,控件内容也不会跟着变。
UpdateData()函数就是解决这个问题的。
UpdateData(true); 把控件内容装入控件变量
UpdateData(false); 用控件变量的值更新控件
最后补一张成果靓照

vs2008 edit spin 十六进制实现的更多相关文章
- allegro飞线隐藏
这些都是最基本的操作,你说的应该是飞线的显示和隐藏,命令在display下面,display>show rats>net(component/all) display>blank r ...
- .Net界面开发必备!DevExpress Blazor UI全新组件助力界面开发
行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,DevExpress UI for Blazor/ Razor组件附带7个用户界面组件(包括Data Grid和Pivot G ...
- 用spin和edit控件来用spin控制edit里面小数的增减
1.响应SPIN的消息,就是点SPIN的上键头和下键头的消息,在这个消息里改变值是以0.1步进量增减.2.使用UpdateData(FALSE)来更新EDIT的关联的double型的变量. 创建步骤 ...
- 【转】MFC 自定义edit 限制输入十六进制内容 响应复制粘贴全选剪切的功能
参考地址:MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能 Ctrl组合键ASCII码 ^Z代表Ctrl+z ASCII值 控制字符 AS ...
- VS2008/MFC —常用控件使用总结 转载
在公司培训期间,经理给了我们没人10个界面草图,让我们在VS2008下使用MFC设计,因为在经理的帮助和自己的努力下,终于在三天时间内完成,现在就根据在这三天 时间里所用到的控件做出如下总结: 1.D ...
- MFC Spin 控件
一般应用: 设置属性: Auto Buddy(自动取关联控件为TAB顺序前一个)Set Buddy Interger(使控件设置关联控件数值,这个值可以是十进制或十六进制)Wrap(数值超过范围时循环 ...
- VS2008 Debug与Release的本质区别(转)
如何设置:工具栏“生成”→“配置管理器”→“活动解决方案配置” 对于VS2008的初次使用者来说,常会遇到的编译问题时,Debug版本运行正常,但在Release版本则不稳定或无法运行.以下是对Deb ...
- vs2008所有DTE.ExecuteCommand命令
下面列表中为我当前机器上visual studio 2008所有DTE.ExecuteCommand命令的内容: 其中:Build.开头对应“编译”菜单下命令(如:Build.RebuildSolut ...
- emWin(ucGui)的Edit控件退格处理方法 worldsing
在enWin(ucGui)中EDIT控件在数值模式(十进制/十六进制/二进制/浮点数)下编辑是,无法使用BackSpace键进行退格,主要涉及到的函数有: EDIT_SetBinMode() EDIT ...
随机推荐
- echarts如何做出堆积图总计的效果
首先说下,我这这数据是假数据,实际是公司做图的一部分数据自己修改了下下,不涉及泄密什么的. 第一.echarts本身是没有这个在柱子上面加total的这点大家默认下就好了,因为我不是什么前端专职程序员 ...
- C++ ASCII 码的一些问题
关于ASCII码和转义字符的对应问题,一直都有个困惑.所以今天校验了一下是什么情况. 转义字符的百度百科:http://baike.baidu.com/link?url=D9ytjAeiYr1ZGKG ...
- OpenGL绘制简单的时钟(首发测试)
#include <windows.h> #include <GL/glut.h>//本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h& ...
- leetcode First Missing Positive python
class Solution(object): def firstMissingPositive(self, nums): """ :type nums: List[in ...
- Follow your heart
世界上最可怕的两个词,一个是执着,一个是认真.认真的人改变自己,执着的人改变命运.任何时候都别怕重来,每个看似低的起点,都是通往高峰的必经之路.不用抱怨那些不尽如人意,问问自己,你够努力了吗?转自人民 ...
- 深入Android媒体存储服务(一):APP与媒体存储服务的交互
简介: 本文介绍如何在 Android 中,开发者的 APP 如何使用媒体存储服务(包含MediaScanner.MediaProvider以及媒体信息解析等部分),包括如何把 APP 新增或修改的文 ...
- SendMessage基本认识
SendMessage基本认识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线 ...
- PHPExcel 多工作表 导入
//参数初始化 $filePath = ''; if ($_FILES["file"]["error"] > 0) { returnJSON(ERROR_ ...
- HTML加载顺序总结测试
首先,页面加载顺序:解析HTML结构.加载外部脚本和样式表文件.解析并执行脚本代码.构造HTML DOM模型.加载图片等外部文件.页面加载完毕. 也就是:html → head → title → # ...
- Android 启动Activity的方式
Activity的启动分为两种方式,显示方式和隐式方式,显示方式就是在通过intent启动Activity时指定了Activity的包名和类名. 而隐式方式则在初始化Intent时仅仅指定action ...