由于做的东西中涉及到一个控件,查了一下叫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 十六进制实现的更多相关文章

  1. allegro飞线隐藏

    这些都是最基本的操作,你说的应该是飞线的显示和隐藏,命令在display下面,display>show rats>net(component/all) display>blank r ...

  2. .Net界面开发必备!DevExpress Blazor UI全新组件助力界面开发

    行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,DevExpress UI for Blazor/ Razor组件附带7个用户界面组件(包括Data Grid和Pivot G ...

  3. 用spin和edit控件来用spin控制edit里面小数的增减

    1.响应SPIN的消息,就是点SPIN的上键头和下键头的消息,在这个消息里改变值是以0.1步进量增减.2.使用UpdateData(FALSE)来更新EDIT的关联的double型的变量. 创建步骤 ...

  4. 【转】MFC 自定义edit 限制输入十六进制内容 响应复制粘贴全选剪切的功能

    参考地址:MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能   Ctrl组合键ASCII码 ^Z代表Ctrl+z                     ASCII值 控制字符  AS ...

  5. VS2008/MFC —常用控件使用总结 转载

    在公司培训期间,经理给了我们没人10个界面草图,让我们在VS2008下使用MFC设计,因为在经理的帮助和自己的努力下,终于在三天时间内完成,现在就根据在这三天 时间里所用到的控件做出如下总结: 1.D ...

  6. MFC Spin 控件

    一般应用: 设置属性: Auto Buddy(自动取关联控件为TAB顺序前一个)Set Buddy Interger(使控件设置关联控件数值,这个值可以是十进制或十六进制)Wrap(数值超过范围时循环 ...

  7. VS2008 Debug与Release的本质区别(转)

    如何设置:工具栏“生成”→“配置管理器”→“活动解决方案配置” 对于VS2008的初次使用者来说,常会遇到的编译问题时,Debug版本运行正常,但在Release版本则不稳定或无法运行.以下是对Deb ...

  8. vs2008所有DTE.ExecuteCommand命令

    下面列表中为我当前机器上visual studio 2008所有DTE.ExecuteCommand命令的内容: 其中:Build.开头对应“编译”菜单下命令(如:Build.RebuildSolut ...

  9. emWin(ucGui)的Edit控件退格处理方法 worldsing

    在enWin(ucGui)中EDIT控件在数值模式(十进制/十六进制/二进制/浮点数)下编辑是,无法使用BackSpace键进行退格,主要涉及到的函数有: EDIT_SetBinMode() EDIT ...

随机推荐

  1. ssh框架用JUnit测试

    public class testAuxDict { //读spring配置文件 public static BeanFactory factory = new ClassPathXmlApplica ...

  2. User cannot be resolved to a type

    出现 User cannot be resolved to a type 不知道具体问题出在哪里但是我经过将全路径输入并保存后错误消失 将User选上,然后点击保存就可以了! 最后我发现错误消失了!

  3. 教你wamp下多域名如何配置

    wamp下多域名配置问题 1.找到wamp安装目录的apache安装目录 找到 httpd.conf文件 例如我安装的目录为 E:\wamp\bin\apache\apache2.2.8\conf\h ...

  4. Docker容器的数据管理

    Docker容器的数据管理 Docker容器的数据管理 什么是数据卷(Data Volume)? 数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问 数据卷设计的目 ...

  5. javascript正则表达式/g与/i及/gi的意义

    regularexpression=/pattern/[switch] 这个switch就有三种值 g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写 JScript 语言参考 --- ...

  6. Facebook React Native 配置小结

    2015 年 9 月 15 号,React Native for Android 发布.至此,React 基本完成了对多端的支持.基于 React / React Native 可以: H5, And ...

  7. hdu 5654 xiaoxin and his watermelon candy 莫队

    题目链接 求给出的区间中有多少个三元组满足i+1=j=k-1 && a[i]<=a[j]<=a[k] 如果两个三元组的a[i], a[j], a[k]都相等, 那么这两个三 ...

  8. python 连接数据库-设置oracle ,mysql 中文字符问题

    import cx_Oracle import MySQLdb def conn_oracle(): cnn = cx_Oracle.connect('用户名','密码','ip:端口号/数据库') ...

  9. IBM X System ServerGuide 8.41 服务器 系统安装 引导盘

    IBM X System ServerGuide 8.41 支持操作系统: 32位: Microsoft Windows 2003/2003 R2 (Enterprise, Standard, Web ...

  10. MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件

    MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效. 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度) 如果设置了背景色,就不保留透明背景 默认背景色是透明的 [cpp] ...