本人在做一个项目的时候遇到了一个比较奇怪的事情,由于要在静态函数中调用一些函数,所以只能使用::PostMessage()函数,而不能使用Postmessage()函数。但是遇到的一个问题是,用PostMessage()的时候程序能执行,而用::PostMessage()的时候没有反应。不知道这是个什么情况。要处理的消息是自定义的消息。望高手帮忙解决。

解决方案 »

  1.   

    我一开始在静态函数中调用的::PostMessage(),没发现这个函数不能调用的问题,我后来在非静态函数中调用它,没反应,我就调用了PostMessage(),结果有反应。
    ::PostMessage(m_hWnd, WM_TEST,0, 0),没有响应。WM_TEST是我自己定义的消息。
    PostMessage(WM_TEST,0, 0),有响应。
      

  2.   

    就是没有执行想相应的操作,比如让::Postmessage显示一个MessageBox,结果没反应,而PostMessage却有反应。
      

  3.   

    这个怎么查看?::Postmessage()这个函数的还有返回值,而且不为0。
      

  4.   

    ::PostMessage(m_hWnd, WM_TEST,0, 0),没有响应。WM_TEST是我自己定义的消息。
    这就说明你调用时 窗口句柄无效,在这句下个断点就知道了
      

  5.   

    m_hWnd这个本身不就是当前对话框的吗?
      

  6.   

    如果m_hWnd是非静态成员变量,静态函数中不能访问。
      

  7.   

    把m_hWnd以16进制显示出来看是多少。