亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2015年06月29日 12:33:47   投稿:hebedich  
這篇文章主要介紹了vc中使用SendMessage自定義消息函數的相關資料,需要的朋友可以參考下

SendMessage的基本結構如下:

SendMessage(
  HWND hWnd, //消息傳遞的目標窗口或線程的句柄。
  UINT Msg, //消息類別(這里可以是一些系統(tǒng)消息,也可以是自己定義,下文具體介紹,)
  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);

這里我發(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:參數有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ā)送與接受過程,我沒有詳細講參數,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中顯示出來

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

相關文章

  • 淺談防不勝防的unsigned int的運算

    淺談防不勝防的unsigned int的運算

    下面小編就為大家?guī)硪黄獪\談防不勝防的unsigned int的運算。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++代碼規(guī)范之命名規(guī)則

    C++代碼規(guī)范之命名規(guī)則

    以下是對C++中的命名規(guī)則進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • 深入解析C語言中的內存分配相關問題

    深入解析C語言中的內存分配相關問題

    這篇文章主要深入地介紹了C語言中的內存分配,C語言編程中的內存泄漏問題一直以來都是C編程中的一大棘手問題,本文從malloc和指針等方面對C內存進行了深層次講解,強烈推薦!需要的朋友可以參考下
    2015-08-08
  • C/C++中虛基類詳解及其作用介紹

    C/C++中虛基類詳解及其作用介紹

    這篇文章主要介紹了C/C++中虛基類的詳解及其作用介紹,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C語言實現賓館管理系統(tǒng)課程設計

    C語言實現賓館管理系統(tǒng)課程設計

    這篇文章主要為大家詳細介紹了C語言實現賓館管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • QT實現QML側邊導航欄的最簡方法

    QT實現QML側邊導航欄的最簡方法

    本文主要介紹了QT實現QML側邊導航欄的最簡方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 一道超經典的C++結構體的題目

    一道超經典的C++結構體的題目

    以下小編就為大家介紹一道超經典的關于C++結構體的題目。需要的朋友可以過來參考下
    2013-09-09
  • C++學習之指針的使用詳解

    C++學習之指針的使用詳解

    這篇文章主要為大家詳細介紹了C++中指針的相關知識,文中的示例代碼講解詳細,對我們的學習或工作有一定的價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • 利用C++實現簡易的狼人殺游戲

    利用C++實現簡易的狼人殺游戲

    狼人殺游戲是一款非常有趣的角色扮演游戲,它需要玩家之間互相猜測身份并進行投票,通過推理來找出真正的狼人。本文將用C++實現這一游戲,感興趣的可以了解一下
    2023-04-04
  • C++使用string的大數除法運算(4)

    C++使用string的大數除法運算(4)

    這篇文章主要為大家詳細介紹了C++使用string的大數除法運算,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評論