在初學(xué)MFC的時(shí)候,選擇了這本《Visual C++通用范例開(kāi)發(fā)金典》這本書(shū),非常不錯(cuò),關(guān)鍵是很多基本的知識(shí)和小技巧。
然而,第一個(gè)Demo就讓我很郁悶,半天都沒(méi)有搞出來(lái)。不過(guò)昨晚,做了第二個(gè)的時(shí)候,出現(xiàn)了轉(zhuǎn)機(jī),不僅實(shí)現(xiàn)了課本上的功能,還完成了擴(kuò)展操作,同時(shí),對(duì)于消息映射的具體操作,如何手動(dòng)添加消息映射代碼,不借助工具有了新的體會(huì),這個(gè)也導(dǎo)致了我完成了第一個(gè)的測(cè)試。
先前,對(duì)于MFC的實(shí)現(xiàn)僅僅看了下《深入淺出MFC》,不過(guò)很懵懂,不知道具體的做法。雖然很經(jīng)典,不過(guò)對(duì)于我這個(gè)初學(xué)者還是很困難。
今天再次消化,終于得到了正確的做法。
原帖見(jiàn)CSDN上面的疑問(wèn):
http://topic.csdn.net/u/20100203/21/4eec88fc-1eaa-4e82-8d68-d4475d419b38.html?50579CSDN牛人輩出,也很熱心,狂贊!!
具體來(lái)說(shuō)就是,我更改了Static控件的屬性,添加了代碼,使得它可以更改,可是結(jié)果卻沒(méi)有任何實(shí)現(xiàn),點(diǎn)擊沒(méi)有反應(yīng)。于是不知所錯(cuò)。
后面,遵照上面高人指點(diǎn),修改了Static的ID,改為IDC_3,就可以了,當(dāng)時(shí)改成IDC_STATIC1還不行,后來(lái)成功之后,居然再改回來(lái)又可以,所以覺(jué)得這個(gè)世界很奇妙,很多東西都讓人不知所錯(cuò)的迷茫啊!
具體來(lái)說(shuō)就是兩點(diǎn):
1.修改ID,改為一個(gè)不是默認(rèn)的值,然后更改屬性為nofify。
2.添加方法,具體來(lái)說(shuō)就是直接雙擊,出現(xiàn)一個(gè)對(duì)話(huà)框來(lái)顯示這個(gè)方法,于是OK。
3.編寫(xiě)方法體,具體來(lái)說(shuō)就是這個(gè)代碼。
void CAdwDlg::OnStatic1()


{
// TODO: Add your control notification handler code here
CString str;
GetDlgItem(IDC_STATIC1)->GetWindowText(str);
if(str == "Hello,world")
GetDlgItem(IDC_STATIC1)->SetWindowText("nice!");
if(str == "nice!")
GetDlgItem(IDC_STATIC1)->SetWindowText("good!");
if(str == "good!")
GetDlgItem(IDC_STATIC1)->SetWindowText("Hello,world");
}
然后就完成了所有的任務(wù),很簡(jiǎn)單,當(dāng)然,添加方法以前都沒(méi)有實(shí)現(xiàn)過(guò)。后來(lái)發(fā)現(xiàn),編譯器實(shí)際上給我們做了兩件事情。
1.在主類(lèi)中添加了相應(yīng)的處理函數(shù),也就是把我們這里處理消息的函數(shù)放在類(lèi)中,作為一個(gè)成員函數(shù),放在.h文件中聲明
2.在實(shí)現(xiàn)中,添加了消息映射的代碼,就是前面的
BEGIN_MESSAGE_MAP(CAdwDlg, CDialog)
//{{AFX_MSG_MAP(CAdwDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_STATIC1, OnStatic1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

有了這兩步,就完成了全部的工作,添加了代碼之后,就成功的實(shí)現(xiàn)了我們的目的。
即,建立消息處理機(jī)制,那么,整個(gè)工作就完成了。。
下載地址是:
http://www.pudn.com/downloads225/sourcecode/windows/control/static/detail1058929.htmlMFC的機(jī)制也就是這么多,正在進(jìn)一步學(xué)習(xí)中。。。。。
posted on 2010-02-04 15:28
deercoder 閱讀(444)
評(píng)論(0) 編輯 收藏 引用