好吧,我只有一个学期的C,所以我很少与HWND
混淆,以及如何使用它。我只想打印活动窗口。我找到了 - GetActiveWindow
,GetForegroundWindow
。
但我只是不明白如何使用此功能来打印该活动窗口。
我试图做类似的事情。
HWND GetActiveWindow();
printf("%s", GetActiveWindow);
但这可能是糟糕的用途而且不起作用。 如果有人能给我一个工作的例子,我将非常感激。
TCHAR buf[256];
GetWindowText( GetActiveWindow(), buf, sizeof buf / sizeof *buf );
wsprintf( TEXT( "Window text: %s\n" ), buf );
HWND
是handle。它有一个整数值,而不是字符串值。如果您的目的是打印窗口的标题,您可以使用GetWindowText
函数从HWND
获取标题:
void printWindow(HWND hWnd)
{
DWORD dwLen = GetWindowTextLengthW(hWnd);
WCHAR *wszTitle = HeapAlloc(GetProcessHeap(), 0, (dwLen + 1) * sizeof(WCHAR));
if(wszTitle == NULL)
{
return;
}
GetWindowTextW(hWnd, wszTitle, dwLen + 1);
wprintf(L"%s\n", wszTitle);
HeapFree(GetProcessHeap(), 0, wszTitle);
}