在已有的对话框上有个按钮,点击它打开一个模态对话框
这个模态对话框可以响应遥控器的输入
遥控器串口监视线程获得输入的时候发送一个消息到GetForegroundWindow()
问题是:      如果我用鼠标点击这个按钮打开对话框,这个对话框可以得到消息
      但是如果在程序里通过代码运行按钮事件打开对话框,它得不到消息这两种方法激活对话框有什么差别?我该怎么做?
谢谢

解决方案 »

  1.   

    判断一下,GetForegroundWindow是你打开的那个窗口么?最好是直接向目标窗口发消息,而不是向GetForegroundWindow,
      

  2.   

    通过代码运行按钮事件,打开的对话框可能没得到焦点GetForegroundWindow看看是不是打开的窗口
      

  3.   

    通过代码运行按钮事件,怎么获得焦点呢???
    遥控器串口监视线程只能指向GetForegroundWindow()
    直接向目标窗口发消息太麻烦
      

  4.   

    不行吧,我试过在模态对话框InitialDialog里加
                  SetFocus();
                  SetForegroundWindow();
                  SetActiveWindow();
    都不行
      

  5.   

    直接用SendMessage或是PostMessage函数把消息传递到处理消息的窗口.