你可以看我的代码!!www.feelby.net的VC专题下有下栽.
(是关于系统托盘的,不过原理是一样的.也是notification message .

解决方案 »

  1.   

    WM_NOTIFY嘛。。
    WM_NOTIFY与WM_COMMAND是不同的喔LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        
    ...
      switch(msg)
      {
      case WM_COMMAND :
         ...
         break; 
      case WM_NOTIFY : // 在这儿,老兄
         ...
         break;    default:
         return DefWindowProc(hwnd, msg, wParam, lParam);
         break;
        }
        return 0;
    }
      

  2.   

    我进不去www.feelby.net网站,能不能简单讲解一下
      

  3.   

    TO zero100:
    好像不行,我加入了WM_NOTIFY消息,但是调试发现程序根本不处理此消息。另外如何处理STN_CLICKED消息呢,它们之间的结构是什么?我现在总是搞不清楚。
      

  4.   

    因为按照msdn的说法,应该结构是这样:
    case WM_NOTIFY:
    {
          .......
          switch(...)
          {
          case STN_CLICKED:
          .......
    但是我觉得这肯定不对,因为参数在这期间改变了。
      

  5.   

    我已经解决了问题,在形如下面的语句中可以得到预期的效果:
    LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        
    ...
      switch(msg)
      {
      case WM_COMMAND :
        {
        ...
        return 0;     default: //这里,因为有若干个Static,id从0到n,所以放在这里可以少写很多case id
        ......
        }
        break;
      
      default:
        return DefWindowProc(hwnd, msg, wParam, lParam);
        break;
        }
        return 0;
    } 不过我仍然没有找到STN_CLICKED消息在哪个地方处理?
    哪位大虾知道吗?
      

  6.   

    LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        
    ...
      switch(msg)
      {
      case WM_COMMAND :
          OnCommand(hwnd,(int)LOWORD(wParam),(HWND)lParam,(UINT)HIWORD(wParam))
      }
    }LRESULT OnCommand(HWND hwnd,int nID, HWND hWndControl, UINT codeNotify)
    {
       if((nID == YOUR_STATIC_ID)&&(codeNotify == STN_CLICKED))
      {//Do your Work here  }
    }