vc中怎麼使用sendmessage自定義訊息函式:
sendmessage的基本結構如下:
sendmessage(
hwnd hwnd, //訊息傳遞的目標視窗或執行緒的控制代碼。
uint msg, //訊息類別(這裡可以是一些系統訊息,也可以是自己定義,下文具體介紹,)
wparam wparam, //引數1 (wparam 其實是與uint是同種型別的,
//在vc編譯器中右鍵有個「轉到wparam的定義」的選項可以檢視。
lparam lparam); //引數2
其中一些引數的由來如下:
//typedef unsigned int uint;
//typedef uint wparam;
//typedef long lparam;
//typedef long lresult;
例如可以用以下語句:
::sendmessage(this->m_hwnd, wm_my_dosome, (wparam) 0, (lparam) 0);
這裡我傳送的訊息是本窗體接收的,所以控制代碼用:this->m_hwnd
這裡的訊息類別wm_my_dosome就是我自定義的,
在接收訊息的窗體或執行緒所在的標頭檔案裡:
#define wm_my_dosome wm_user+1 // do something
當然你還可以定義更多如:
#define wm_doother wm_user+2 // do other
表示要做一些事情。
到這裡,可能大家還是對訊息類別有點模糊,不要擔心,我下面很快就講到。
我們發了乙個訊息出去,那麼接收方要能識別這個訊息是幹什麼,就是通過訊息類別來區分,
並且開始去做這個訊息對應要處理的事情。如下:
一:編寫乙個事情:
我們在接收窗體裡定義乙個這樣的事情(過程),
afx_msg lresult dosomething(wparam iparam1,lparam iparam2)
這個事情有3點大家要注意,非常重要:
1:使用了afx_msg,並且要將afx_msg lresult dosomething(wparam iparam1,lparam iparam2)
改寫到頭檔案的
//}afx_msg
2:引數有2個,wparam iparam1,lparam iparam2,哪怕沒有東西傳進來也要寫,不然會吃苦頭的,vc裡不會提醒你少寫了乙個,
但一些莫名奇妙的事情會發生。
3:型別用 lresult,完了要return 0;
二:讓接收方知道什麼時候做這個事情:
我們在//}afx_msg_map
到這裡,當你用sendmessage,發了乙個wm_my_dosome型別的訊息過來的時候,
接收方就會去做dosomething(wparam iparam1,lparam iparam2)
發了乙個wm_doother型別的訊息過來的時候,
接收方就會去做doother(wparam iparam1,lparam iparam2)當然,這裡doother我還沒有定義,
這樣就是乙個完整的訊息傳送與接受過程,我沒有詳細講引數,iparam1,因為還沒有用到很複雜的情況,
大家要是有心得我們可以一起提高。
wm_mymsg wm_user+5
//自定義乙個訊息
afx_msg
void
onmymessage(wparam wparam, lparam lparam);
//自定義訊息的處理函式宣告
在.cpp檔案裡
on_message(wm_mymsg, onmymessage)
//利用on_message()巨集在自定義訊息與其處理函式間建立對映關係
void
cmodelessdlg::onmymessage(wparam wparam, lparam lparam)
//從lparam中取出cstring物件的指標,並將字串內容在idc_msgedit中顯示出來
按下按鈕傳送訊息
void
cmodelessdlg::onmsgbtn()
VC中怎麼讀取 txt檔案
一 cstdiofile 二 file f fopen file name mode char buff size fread buff,size,1,f fclose f 三 用mfc讀檔案 cfile file yourfile.txt cfile moderead char pbuf int ...
VC中的tab控制項怎麼用
屬性對話方塊不同於普通對話方塊的是它能同時提供多個選項頁,而每頁都可以由資源編輯器 以編輯對話方塊的方式進行編輯,這樣給介面開發帶來了方便。同時使用上也遵守普通對話 框的規則,所以學習起來很方便。屬性對話方塊由兩部分構成 多個屬性頁 cpropertypage 和屬性對話方塊 cpropertysh...
VC中Tree Control的使用
vc中tree control的使用 邵盛松 2010年11月29日星期一 一 tree control的初始化 htreeitem htreeitemparent null htreeitem htreeitemchild null cstring strparentdata l cstring ...