我不知道你指的是不是自定义消息,如果是自定义消息,我这里有一个SDK的托盘程序的例子:
#define WM_SHELLNOTIFY WM_USER+5  //自定义消息
NOTIFYICONDATA ntid;              
...
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch(uMsg){
    case WM_CREATE:
         ....
        ntid.uCallbackMessage=WM_SHELLNOTIFY;   //使用自定义消息
       ....
    case WM_SHELLNOTIFY:                      //对自定义消息进行处理
        if(wParam==IDI_ICON1){
        }
    }
}
一个初学者,水平有限,也不知道你讲的是不是这个问题.

解决方案 »

  1.   

    先 #define  WM_XXXX WM_USER+5
    然后试程序响应这个消息
      

  2.   

    消息是由一个32位整数来代表。
    window通过sendmessage,postmeesage等一系列函数来通知操作系统响应消息,因此消息可以被外部事件激发,也可以直接通过上述函数来模拟(os无法区分它们)
    讲不下去了,因为不知道你到底想问什么。
      

  3.   

    LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
    {
        switch(uMsg){
        case WM_CREATE:
            ....
            ntid.uCallbackMessage=WM_SHELLNOTIFY;  //使用自定义消息
          ....
        case WM_SHELLNOTIFY:                      //对自定义消息进行处理
            if(wParam==IDI_ICON1){
            }
        }
    }這個是函數在哪里找啊?怎么加入自己定義的消息到這個case???!!!
      

  4.   

    这个函数是自定义的,用于在SDK程序中处理窗口消息的。在MFC中不这么用。
    在MFC中,我们先假定有一个基于对话框的MFC程序,主窗口是一个名为CNotifyDlg的
    对话框,上面有一个名为Tray的按钮,单击它可使窗口SHOWHIDE并且在任务栏上显示一
    个图标:
    则:
    在文件NotifyDlg.h中:
    #define WM_SHELLNOTIFY WM_USER+5       //自定义消息
    ......
    afx_msg LRESULT onShellNotify(WPARAM wParam,LPARAM lParam);//定义处理消息的函数
    DECLARE_MESSAGE_MAP()
    在文件NotifyDlg.cpp中:
    BEGIN_MESSAGE_MAP(CNotifyDlg,CDialog)
    ON_MESSAGE(WM_SHELLNOTIFY,onShellNotify)  //将自定义消息与其处理的函数联系起来
    END_MESSAGE_MAP()
    ...
    void CNotifyiconDlg::OnTray() 
    {
    NOTIFYICONDATA nid;
    nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
    nid.hWnd=this->m_hWnd;
    nid.uID=IDR_MAINFRAME;
    nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
    nid.uCallbackMessage=WM_SHELLNOTIFY;//自定义的消息名称
    nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
    strcpy(nid.szTip,"计划任务提醒");//信息提示条为“计划任务提醒”
    Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
    ShowWindow(SW_HIDE);//隐藏主窗口
    }LRESULT CNotifyDlg::onShellNotify(WPARAM wParam,LPARAM lParam)
    {                            //对自定义消息进行处理的函数体
         if(wParam!=IDR_MAINFRAME)
    return 1;
         switch(lParam){
         }
    }