VC2008中处理CStatic控件的单击STN_CLICKED消息
2013-12-28 11:28
197 查看
在MFC中,静态文本CStatic控件主要是用来作为标签,即作为注释用的。一般情况下不做消息响应。但是有时特殊情况下会做一些消息响应,比如处理单击事件STN_CLICKED等。
在VC2008下使用MFC创建了一个基于对话框的应用程序。添加一个CStatic控件,修改其Caption属性为:Number1:
默认情况下MFC中所有新添加的静态控件的ID是一样的,都是IDC_STATIC,如果想要使用某个STATIC控件进行消息响应,则首先需要修改该控件ID,比如将其ID修改成IDC_NUMBER1。
对于上述ID为IDC_NUMBER1的CStatic控件,在其属性中添加了STN_CLICKED的消息响应函数,
自动生成一个消息映射如下:
函数声明为:
实现体为:
接着运行了程序,当单击CStatic控件时,其值未发生变化,查阅了MSDN中关于Static Controls Messages 中的STN_CLICKED 消息,有如下描述:
原来需要在VS2008中修改ID为IDC_NUMBER1的CStatic控件的Notify属性(即SS_NOTIFY风格),将其改成TRUE就OK了,默认的属性为FASLE,即静态文本控件在默认情况下是不发送通告消息的。
总结如下,为了使得一个静态文本控件能够响应鼠标单击消息,那么需要进行两个特殊的步骤:
1、改变它的ID。(默认统一为IDC_STATIC)
2、在属性对话框中,将其notify属性设置为true。
在VC2008下使用MFC创建了一个基于对话框的应用程序。添加一个CStatic控件,修改其Caption属性为:Number1:
默认情况下MFC中所有新添加的静态控件的ID是一样的,都是IDC_STATIC,如果想要使用某个STATIC控件进行消息响应,则首先需要修改该控件ID,比如将其ID修改成IDC_NUMBER1。
对于上述ID为IDC_NUMBER1的CStatic控件,在其属性中添加了STN_CLICKED的消息响应函数,
自动生成一个消息映射如下:
BEGIN_MESSAGE_MAP(CTestDlg, CDialog) ON_STN_CLICKED(IDC_NUMBER1, &CTestDlg::OnStnClickedNumber1) END_MESSAGE_MAP()
函数声明为:
afx_msg void OnStnClickedNumber1();
实现体为:
void CTestDlg::OnStnClickedNumber1() { // TODO: Add your control notification handler code here CString strNum1; GetDlgItem(IDC_NUMBER1)->GetWindowText(strNum1); if (strNum1 == _T("Number1:")) { GetDlgItem(IDC_NUMBER1)->SetWindowText(_T("数值1:")); } else { GetDlgItem(IDC_NUMBER1)->SetWindowText(_T("Number1:")); } }
接着运行了程序,当单击CStatic控件时,其值未发生变化,查阅了MSDN中关于Static Controls Messages 中的STN_CLICKED 消息,有如下描述:
STN_CLICKED | This message is sent when the user clicks a static control that has the SS_NOTIFY style. |
总结如下,为了使得一个静态文本控件能够响应鼠标单击消息,那么需要进行两个特殊的步骤:
1、改变它的ID。(默认统一为IDC_STATIC)
2、在属性对话框中,将其notify属性设置为true。
相关文章推荐
- Thinkpad SL400 功能键介绍
- 微分方程求解思考
- lesson 2 hbase install on hadoop
- 编程修养 from匠人的百宝箱
- cppTest-3.0:指针相关-3(二维数组的n种new方式)
- 分享-php 上传图片的代码
- iOS 5 ARC 入门
- ASP.NET MVC and jqGrid 学习笔记 6-增删改操作
- cppTest-3.0:指针相关-3(new&delete)
- linux,单用户模式下,修改ROOT密码时,键盘用没了。
- Linux下各种主要文件系统的读写性能测试 ------------实际系统中的Nand Flash速度测试结果
- 马达 vibrator的android的timed_output实现方式
- Lucene:QueryParser
- Java中SimpleDateFormat用法详解
- cppTest-3.0:指针相关-2(二维数组&一级指针&二级指针&一维指针数组)
- EBS财务模块表结构
- UVA 1523 - Helicopter(暴力枚举)
- EBS财务模块表结构
- EBS财务模块表结构
- Advanced Installer 9.8打包实录