VC2008中处理CStatic控件的单击STN_CLICKED消息
在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]?view plaincopy
函數聲明為:
[cpp]?view plaincopy
實現體為:
[cpp]?view plaincopy
接著運行了程序,當單擊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. |
原來需要在VS2008中修改ID為IDC_NUMBER1的CStatic控件的Notify屬性(即SS_NOTIFY風格),將其改成TRUE就OK了,默認的屬性為FASLE,即靜態文本控件在默認情況下是不發送通告消息的。
總結如下,為了使得一個靜態文本控件能夠響應鼠標單擊消息,那么需要進行兩個特殊的步驟:
1、改變它的ID。(默認統一為IDC_STATIC)
2、在屬性對話框中,將其notify屬性設置為true。
總結
以上是生活随笔為你收集整理的VC2008中处理CStatic控件的单击STN_CLICKED消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mfc 改变tab快捷键对控件的顺序
- 下一篇: C++中ASCII、unicode与Ut