我写了一个程序,目的是根据用户的键盘输入显示对应的图形,但是在运行过程中遇到这样一个问题:就是当有其他程序运行的时候,程序的窗口就失去了焦点,也就不能继续响应用户的输入了。有没有什么方法能够让程序自动获得输入焦点?也就是说在窗体失去焦点(标题栏变灰)后,有没有什么函数能够让窗体自动获得焦点(标题栏变成蓝色)?先给100分,不够再加。问题解决立即结帖。

解决方案 »

  1.   

    你试试BOOL SetWindowPos(
      HWND hWnd,             // handle to window
      HWND hWndInsertAfter,  // placement-order handle
      int X,                 // horizontal position
      int Y,                 // vertical position
      int cx,                // width
      int cy,                // height
      UINT uFlags            // window-positioning flags
    );第一个hWnd 就是你自己的窗口句柄 第二个填写 HWND_TOPMOST 
    x,y, cx, cy,的意思应该知道, uFlags: SWP_ASYNCWINDOWPOS or SWP_SHOWWINDOW 试试
    如果不行 就截获 WM_KILLFOCUS 消息 对此进行处理
      

  2.   

    To:beyondtkl(大龙驹<逝追.弗瑞德>) 
      你的方法我试过了,好像不行,我的目的是当Windows切换到另一个程序的时候,我的窗口能够自动再切换回来,也就是让我的窗口始终处于激活状态。
      不过还是很谢谢你!!!
      

  3.   

    如果不行 就截获 WM_KILLFOCUS 消息 对此进行处理这个你试了么...
      

  4.   

    TApplication 的 OnDeactivate 事件
      

  5.   

    就截获 WM_KILLFOCUS ,其中调用SetFocus或者把该窗口设为置顶