博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ON_STN_CLICKED函数
阅读量:3660 次
发布时间:2019-05-21

本文共 1203 字,大约阅读时间需要 4 分钟。

 转自

 在MFC中,静态文本CStatic控件主要是用来作为标签,即作为注释用的。一般情况下不做消息响应。但是有时特殊情况下会做一些消息响应,比如处理单击事件STN_CLICKED等。

     在VC2008下使用MFC创建了一个基于对话框的应用程序。添加一个CStatic控件,修改其Caption属性为:Number1:

     默认情况下MFC中所有新添加的静态控件的ID是一样的,都是IDC_STATIC,如果想要使用某个STATIC控件进行消息响应,则首先需要修改该控件ID,比如将其ID修改成IDC_NUMBER1。

    对于上述ID为IDC_NUMBER1的CStatic控件,在其属性中添加了STN_CLICKED的消息响应函数,

自动生成一个消息映射如下:

[cpp] 
 
  1. BEGIN_MESSAGE_MAP(CTestDlg, CDialog)  
  2.  ON_STN_CLICKED(IDC_NUMBER1, &CTestDlg::OnStnClickedNumber1)  
  3. END_MESSAGE_MAP()  


函数声明为:

[cpp] 
 
  1. afx_msg void OnStnClickedNumber1();  

实现体为:

[cpp] 
 
  1. void CTestDlg::OnStnClickedNumber1()  
  2. {  
  3.     // TODO: Add your control notification handler code here  
  4.     CString strNum1;  
  5.     GetDlgItem(IDC_NUMBER1)->GetWindowText(strNum1);  
  6.     if (strNum1 == _T("Number1:"))  
  7.     {  
  8.         GetDlgItem(IDC_NUMBER1)->SetWindowText(_T("数值1:"));  
  9.     }  
  10.     else  
  11.     {  
  12.         GetDlgItem(IDC_NUMBER1)->SetWindowText(_T("Number1:"));  
  13.     }  
  14. }  

接着运行了程序,当单击CStatic控件时,其值未发生变化,查阅了MSDN中关于Static Controls Messages 中的 消息,有如下描述:

This message is sent when the user clicks a static control that has the SS_NOTIFY style.

原来需要在VS2008中修改ID为IDC_NUMBER1的CStatic控件的Notify属性(即SS_NOTIFY风格),将其改成TRUE就OK了,默认的属性为FASLE,即静态文本控件在默认情况下是不发送通告消息的。

总结如下,为了使得一个静态文本控件能够响应鼠标单击消息,那么需要进行两个特殊的步骤:

1、改变它的ID。(默认统一为IDC_STATIC)

2、在属性对话框中,将其notify属性设置为true。

 

转载地址:http://ehtfn.baihongyu.com/

你可能感兴趣的文章
Java 8 学习笔记2——通过行为参数化传递代码
查看>>
Java 8 学习笔记3——Lambda 表达式
查看>>
Java 8 学习笔记4——流的概念
查看>>
Java 8 学习笔记5——使用流
查看>>
Java 8 学习笔记6——用流收集数据
查看>>
Java 8 学习笔记7——并行数据处理与性能
查看>>
Java 8 学习笔记8——重构、测试和调试
查看>>
Java 8 学习笔记9——默认方法
查看>>
Java 8 学习笔记10——用Optional取代null
查看>>
Java 8 学习笔记11——CompletableFuture:组合式异步编程
查看>>
实体类参数检验
查看>>
PXE自动装机讲解及其步骤(图文详解)
查看>>
Github Pages+Hexo+腾讯云域名绑定
查看>>
Java之多线程
查看>>
Hadoop+Zookeeper+Spark+Hbase集群式部署
查看>>
软件测试流程(一)
查看>>
软件测试流程(二)
查看>>
Python参考书籍
查看>>
Python惯例
查看>>
玩转PyCharm
查看>>