a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

vc中使用SendMessage自定義消息函數

2020-01-26 15:04:47
字體:
來源:轉載
供稿:網友

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){ MessageBox("收到消息了,我要開始做一些事情了。","收到",MB_OK); //可以運用iParam1,iParam2 來做一些事情。 return 0;}

這個事情有3點大家要注意,非常重要:
1:使用了afx_msg,并且要將afx_msg LRESULT DoSomeThing(WPARAM iParam1,LPARAM iParam2)
改寫到頭文件的
//{{AFX_MSG
//。。。改寫到這里,顏色會變成灰的。這一點非常重要。
//}}AFX_MSG
2:參數有2個,WPARAM iParam1,LPARAM iParam2,哪怕沒有東西傳進來也要寫,不然會吃苦頭的,vc里不會提醒你少寫了一個,
但一些莫名奇妙的事情會發生。
3:類型用 LRESULT,完了要return 0;

二:讓接收方知道什么時候做這個事情:

我們在

//{{AFX_MSG_MAP//。。。這里寫上ON_MESSAGE(WM_MY_DOSOME,DoSomeThing)//如果還有其他消息就再寫一個ON_MESSAGE(WM_DOOTHER,DoOther)//}}AFX_MSG_MAP

到這里,當你用SendMessage,發了一個WM_MY_DOSOME類型的消息過來的時候,
接收方就會去做DoSomeThing(WPARAM iParam1,LPARAM iParam2)
發了一個WM_DOOTHER類型的消息過來的時候,
接收方就會去做DoOther(WPARAM iParam1,LPARAM iParam2)當然,這里DoOther我還沒有定義,
這樣就是一個完整的消息發送與接受過程,我沒有詳細講參數,iParam1,因為還沒有用到很復雜的情況,
大家要是有心得我們可以一起提高。

在頭文件里

復制代碼 代碼如下:

#define 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中顯示出來

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产露脸150部国语对白 | 日韩视频在线播放 | 国产在线观看欧美 | 深夜福利1000 | 成人网页 | 成人一二三区 | 97国产精品人人爽人人做 | 成人精品久久久 | 亚洲v日韩v综合v精品v | 久久网日本 | 日本久久久亚洲精品 | 女人毛片 | 中文字幕网在线 | 欧美日韩一区不卡 | 女人毛片 | 一区二区三区免费看 | 午夜逼逼 | 性人久久久| 色爱av| 天天射射天天 | 国产在线一区二区三区 | 国产美女精品人人做人人爽 | 国产特黄大片aaaaa毛片 | 国产精品污www一区二区三区 | 人人爽人人人 | 成人精品国产免费网站 | 久久精品99 | 久久草视频| 91av在线免费看 | 免费久久精品 | 欧美一区二区三区在线播放 | 中文字幕高清一区 | 亚洲精品视频国产 | 人人草在线观看视频 | 国产精品无码久久久久 | 日本成人黄色 | 秋霞av电影 | 综合久久综合久久 | 亚洲成人精品一区二区三区 | 国产suv精品一区二区六 | 中文字幕日韩一区 |