Я хочу отобразить заголовок диалогового окна:
HWND hWnd = ::GetActiveWindow(); char cc[101]; ::GetWindowText(hWnd,cc,100); MessageBox(cc);
, но результат выдает пустое "".
не уверен, что не так ??
Согласно MSDN :
Извлекает дескриптор окна к активному окну, прикрепленному к очереди сообщений вызывающего потока.
Это означает, что если поток, из которого вы вызываете функцию, не владеет никаким окном, функция завершится ошибкой.
Вы, вероятно, хотите вместо этого GetForegroundWindow.
GetForegroundWindow
Это может быть немного поздно, но все равно Если вы хотите в любой момент получить текущее (активное) окно в системе, наилучшим подходом является использование процедуры, реализованной в DLL, а затем установка глобальной ловушки, вызывающей эту процедуру.
Следующие ресурсы весьма полезны: