建立了一个线程,向某个界面类发送消息。该界面为模式态,不是主界面。请问PostMessage函数中的参数HWND hWnd该怎么设?怎么让该界面知道消息是发送给他的?设为HWND_BROADCAST或NULL都不行。还有自定义消息解析应该放在哪?

解决方案 »

  1.   

    PostMessage的第一个参数需要指定清楚是哪个界面的句柄
      

  2.   

    必须在模式对话框的WM_CREATE消息响应中获得HWND并保存起来,线程才能向这个对话框发送消息。
      

  3.   

    如果PostMessage函数还带有参数,该参数该从哪里获得呢?
      

  4.   

    在下认为,线程建立之初就需要把那个HWND传入,或者它的指针传入,调用PostMessage的时候就可以用这个句柄。这个句柄的获得方式很多,可以在那个接受消息的串口创建时传出(GetSafeHwnd()),或用其他的函数获取。自定义消息的响应函数放在对话框那里最好,在消息映射里添加ON_MESSAGE(自定义消息,消息响应函数名)。
      

  5.   

    你要传递给那个窗口
    该窗口类有个成员是m_hwnd