获取当前窗口到GetWindowText的句柄?

时间:2012-01-07 03:59:23

标签: c++ visual-c++

我想显示对话框的标题:

HWND hWnd = ::GetActiveWindow();
char cc[101];
::GetWindowText(hWnd,cc,100);
MessageBox(cc);

但结果会产生一个空白“”。

不确定有什么问题?

2 个答案:

答案 0 :(得分:1)

根据MSDN

  

检索附加到调用线程的消息队列的活动窗口的窗口句柄。

这意味着如果您调用该函数的线程没有任何窗口,则该函数将失败。

您可能需要GetForegroundWindow代替。

答案 1 :(得分:0)

这可能会有点晚,但无论如何。如果要随时获取系统上的当前(活动)窗口,最好的方法是使用DLL中实现的过程,然后安装调用此过程的全局钩子。

以下资源非常有用:

  1. Creating and using your DLL
  2. An overview on Hooks