最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vc中SendMessage自定義消息函數(shù)用法實例

 更新時間:2014年10月22日 12:04:29   投稿:shichen2014  
這篇文章主要介紹了vc中SendMessage自定義消息函數(shù)用法,以實例實行詳細講述了SendMessage的定義、原理與用法,具有一定的實用價值,需要的朋友可以參考下

本文實例講述了vc中SendMessage自定義消息函數(shù)用法,分享給大家供大家參考。具體如下:

SendMessage的基本結構如下:

復制代碼 代碼如下:
SendMessage(
    HWND hWnd,  //消息傳遞的目標窗口或線程的句柄。
    UINT Msg, //消息類別(這里可以是一些系統(tǒng)消息,也可以是自己定義,下文具體介紹,)
    WPARAM wParam, //參數(shù)1 (WPARAM 其實是與UINT是同種類型的,
  //在vc編譯器中右鍵有個“轉(zhuǎn)到WPARAM的定義”的選項可以查看。
    LPARAM lParam); //參數(shù)2

其中一些參數(shù)的由來如下:

//typedef unsigned int UINT;
//typedef UINT WPARAM;
//typedef LONG LPARAM;
//typedef LONG LRESULT;

例如可以用以下語句:

復制代碼 代碼如下:
::SendMessage(this->m_hWnd, WM_MY_DOSOME, (WPARAM) 0, (LPARAM) 0);

這里我發(fā)送的消息是本窗體接收的,所以句柄用:this->m_hWnd
這里的消息類別WM_MY_DOSOME就是我自定義的,
在接收消息的窗體或線程所在的頭文件里:

復制代碼 代碼如下:
#define WM_MY_DOSOME WM_USER+1 // do something

當然你還可以定義更多如:
復制代碼 代碼如下:
#define WM_DOOTHER WM_USER+2 // do other

表示要做一些事情。

到這里,可能大家還是對消息類別有點模糊,不要擔心,下面很快就講到。
我們發(fā)了一個消息出去,那么接收方要能識別這個消息是干什么,就是通過消息類別來區(qū)分,并且開始去做這個消息對應要處理的事情。如下:

一、編寫一個事情:
我們在接收窗體里定義一個這樣的事情(過程),

復制代碼 代碼如下:
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. 參數(shù)有2個,WPARAM iParam1,LPARAM iParam2,哪怕沒有東西傳進來也要寫,不然會吃苦頭的,vc里不會提醒你少寫了一個,
但一些莫名奇妙的事情會發(fā)生。
3. 類型用 LRESULT,完了要return 0;

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

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

到這里,當你用SendMessage,發(fā)了一個WM_MY_DOSOME類型的消息過來的時候,接收方就會去做DoSomeThing(WPARAM iParam1,LPARAM iParam2)
發(fā)了一個WM_DOOTHER類型的消息過來的時候,接收方就會去做DoOther(WPARAM iParam1,LPARAM iParam2)當然,這里DoOther我還沒有定義。

這樣就是一個完整的消息發(fā)送與接受過程,這里沒有詳細講參數(shù),iParam1,因為還沒有用到很復雜的情況,

在頭文件里:

復制代碼 代碼如下:
#define WM_MYMSG  WM_USER+5 //自定義一個消息

afx_msg void OnMyMessage(WPARAM wParam, LPARAM lParam); //自定義消息的處理函數(shù)聲明

在.cpp文件里:

復制代碼 代碼如下:
ON_MESSAGE(WM_MYMSG, OnMyMessage)
//利用ON_MESSAGE()宏在自定義消息與其處理函數(shù)間建立映射關系

void CModelessDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
//從lParam中取出CString對象的指針,并將字符串內(nèi)容在IDC_MSGEDIT中顯示出來
{

    CString *str;
    str=(CString *)lParam;

    SetDlgItemText(IDC_EDIT,*str);
}

按下按鈕發(fā)送消息

復制代碼 代碼如下:
void CModelessDlg::OnMsgBTN()
{
 CString str= "自定義消息被觸發(fā)了!";
 SendMessage(WM_MYMSG, 0, (LPARAM) &str);
 //給ModelessDlg自己發(fā)一個自定義的消息
}

希望本文所述對大家的VC程序設計有所幫助。

相關文章

  • 淺談C語言中include

    淺談C語言中include""與include<>的區(qū)別

    C語言中包含文件有兩種包含符號,一個是<>尖括號,另一個是""雙引號。那么這兩個有什么區(qū)別呢?本文就詳細的介紹一下,感興趣的可以了解一下
    2021-06-06
  • 用c++實現(xiàn)x的y次冪的代碼

    用c++實現(xiàn)x的y次冪的代碼

    以下實例是對使用c++實現(xiàn)x的y次冪的解決方法進行了介紹。需要的朋友參考下
    2013-05-05
  • .h和.cpp文件的區(qū)別(zt)詳細介紹

    .h和.cpp文件的區(qū)別(zt)詳細介紹

    特別是對源文件和頭文件的概念,需要深入對它了解,本文將詳細介紹,需要了解的朋友可以參考下
    2012-11-11
  • 利用Matlab編寫簡易版連連看小游戲

    利用Matlab編寫簡易版連連看小游戲

    連連看作為經(jīng)典的小游戲,一定是很多人的回憶吧。本文將用Matlab實現(xiàn)這一經(jīng)典的游戲,文中示例代碼具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言中二維數(shù)組指針的簡要說明

    C語言中二維數(shù)組指針的簡要說明

    這篇文章主要介紹了C語言中二維數(shù)組指針的簡要說明,文章后也附送一個小練習題進行鞏固,需要的朋友可以參考下
    2015-08-08
  • C++實現(xiàn)簡單學生成績管理系統(tǒng)

    C++實現(xiàn)簡單學生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實現(xiàn)并查集

    C++實現(xiàn)并查集

    這篇文章主要為大家詳細介紹了C++實現(xiàn)并查集,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++實例分析講解臨時對象與右值引用的用法

    C++實例分析講解臨時對象與右值引用的用法

    對性能來說,許多的問題都需要和出現(xiàn)頻率及本身執(zhí)行一次的開銷掛鉤,有些問題雖然看似比較開銷較大,但是很少會執(zhí)行到,那也不會對程序有大的影響;同樣一個很小開銷的函數(shù)執(zhí)行很頻繁,同樣會對程序的執(zhí)行效率有很大影響。本章中作者主要根據(jù)臨時對象來闡述這樣一個觀點
    2022-08-08
  • C語言通訊錄管理系統(tǒng)完整版

    C語言通訊錄管理系統(tǒng)完整版

    這篇文章主要為大家詳細介紹了C語言通訊錄管理系統(tǒng)的完整版本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 數(shù)據(jù)結構之紅黑樹詳解

    數(shù)據(jù)結構之紅黑樹詳解

    這篇文章主要介紹了數(shù)據(jù)結構之紅黑樹詳解,紅黑樹是一種自平衡二叉查找樹,它的統(tǒng)計性能要好于平衡二叉樹(AVL樹),因此,紅黑樹在很多地方都有應用,需要的朋友可以參考下
    2014-08-08

最新評論

新河县| 海阳市| 房山区| 正定县| 遂溪县| 奇台县| 双辽市| 益阳市| 阿图什市| 绿春县| 邹城市| 巫山县| 新营市| 丰原市| 广西| 滨海县| 威海市| 贺州市| 玉溪市| 三都| 神木县| 乐都县| 文昌市| 鹤壁市| 武平县| 大石桥市| 汪清县| 沈阳市| 温泉县| 华宁县| 济宁市| 抚顺市| 千阳县| 鹤壁市| 鄂伦春自治旗| 大石桥市| 武清区| 罗平县| 湘潭市| 宽城| 永泰县|