`

WM_USER的说明 用户消息ID

阅读更多

WM_USER

 

摘自:http://baike.baidu.com/view/4146980.htm

 

为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用。

 

所以自定义消息的步骤:

  (一)先在头文件中定义自己消息的ID,如 #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)

  (二)再声明自己的消息处理函数:afx_msg void OnMyFirstMessage();

  (三)在CPP文件中添加消息映射宏:

  在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP代码块中添加消息映射宏ON_MESSAGE,(建议添加到//}}后面)如下:

  BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

  //{{AFX_MSG_MAP(CAboutDlg)

  // No message handlers

  //}}AFX_MSG_MAP

  ON_MESSAGE(WM_MY_FIRST_MESSAGE, OnMyFirstMessage)

  END_MESSAGE_MAP()

  (四)最后定义消息处理函数:

  OnMyFirstMessage()

  {

  // TODO: 在此添加控件通知处理程序代码

  }

分享到:
评论

相关推荐

    MFC消息映射详细介绍与实现

     系统消息ID的范围是从0到WM_USER-1,或0X80000到0XBFFFF;应用程序消息从WM_USER(0X0400)到0X7FFF,或0XC000到0XFFFF;WM_USER到0X7FFF范围的消息由应用程序自己使用;0XC000到0XFFFF范围的消息用来和其他应用...

    RRGRID

    GRID_USER_OUTER WM_USER+20 <br>//WM_GRID_USER_OUTER+1 -- WM_GRID_USER_OUTER+19内部使用 <br>//Grid往父窗口发的通知消息 //wParam --通知码/控件id组成 //lParam --与父窗口进行信息交流的...

    Delphi打开关闭外部程序并加入到Windows菜单中.rar

    当用户从菜单中选一项时,系统便会发出WM_COMMMAND消息,而对于系统菜单,则会发出WM_SYSCOMMAND消息,重载这个消息,并判断选中菜  单的ID值是否为用户设定值便可以了。  在Private声明部分,说明了过程,...

    C#如何在后台捕捉按键

    若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。 id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态...

    VB接收自定义消息.rar

    您可以用API函数SetWindowLong指定处理消息的窗口过程(window procedure)为自定义的函数WindowProc,捕获消息ID为WM_USER+1的自定义消息或系统消息。并且,为了保证窗口能正确的响应消息,需要保存原来默认的窗口...

    应用trayicon类实现通知区的操作

    //在工程中新建一个菜单ID为IDR_TRAYPOPUP,添加两个命令ID:ID_SHOWWINDOW 和 ID_HIDEWINDOW //并利用类向导在CMainFrame类中为它们添加命令处理函数 void CMainFrame::OnShowwindow() { // 显示窗口 this->...

    visual c++ 课程设计旅馆管理系统源程序

    ON_COMMAND(ID_USER_ADD, OnUserAdd) //}}AFX_MSG_MAP END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, ...

    [VB] 游戏中 热键 发消息 源码

    (ByVal hwnd As Long, ByVal id As Long, ByVal fskey_Modifiers As Long, ByVal vk As Long) As Long Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long...

    VC托盘程序

     第四步:自定义菜单IDR_POPUPMENU,其中最少包括一项:ID:ID_VIEW_MAIN_WINDOW,Caption为"显示主窗口",并为该项在类CmainFrame中添加消息映射函数,COMMAND和UPDATE_COMMAND_UI。  第五步:在Mainframe.cpp中...

    HotKey函数的应用(VB实现热键)

    Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias...

    RegisterWindowMessage函数使用中的问题

    同一个程序的不同实例间进行通讯例子。 采用C和API编写,没有MFC的东西。...#define UMSG wm_user+....,此值不合适的话,不会收到消息。 RegisterWindowMessage("UMSG"); SendMessage(HWND_BROADCAST,UMSG,0,0);

    SQL培训第一期

    用于控制对数据库里数据的访问,通常用于创建与用户访问相关的对象以及控制用户的权限,grant、revoke(撤销)。 1.2.5 事务控制命令(TPL) 用于管理数据库事务,commit、rollback、savepoint(在一组事务里创建...

    C++MFC教程

    // ON_COMMAND(ID_FONT_DROPDOWN, DoNothing) case(WM_COMMAND): if(HIWORD(wP)==ID_FONT_DROPDOWN) { DoNothing(...); } break; //END_MESSAGE_MAP() } } newWndProc就是窗口过程只要是该类的...

    基于sniffer做的一个抓包监控软件

    PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE) ; // Force to make the queue pDlg->m_threadID = GetCurrentThreadId() ; while( TRUE ) { if( PeekMessage( &msg , 0 , WM_CLOSE,WM_CLOSE,PM_...

    一个不错的地形编辑器源码.zip

    /************************************************************************************... PrintfCallbackFcn ("%s", "UpdateEntities cancelled by user.\n"); CompileRslt = COMPILER_ERROR_USERCANCEL; break;...

    NT Locale Emulator Advance (中文名稱: NT全域通)

    增加WM_CHAR及WM_IME_CHAR消息的处理模块,修正了输入框文字不能被正确显示及文字不能被正确输入的问题 消除了数个读零地址非法操作的诱发因素 改进了消息钩子的处理方式 增加应用程序参数指定的支持(详见命令行...

    opengl画图程序附带源代码

    // Pop Up A Message Box Letting User Know The Program Is Closing. MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP); return FALSE; // Return FALSE } } } if (fullscreen) // Are...

    MFC制作的MP3

    SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect ...

    stdafx.h代码

    // a target for user commands class CWnd; // a window / HWND wrapper class CDialog; // a dialog // standard windows controls class CStatic; // Static control class CButton; // Button control ...

    gertt点阵图读取器(opengl)

    // Pop Up A Message Box Letting User Know The Program Is Closing. MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP); return FALSE; // Return FALSE } } } ...

Global site tag (gtag.js) - Google Analytics