C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
WinAPI, HWND гланого окна активного преложения
Duch
Отправлено: 08.03.2004, 20:49


Ученик-кочегар

Группа: Участник
Сообщений: 4



[COLOR=blue]
Драсти.
HWND hMane,hChild;
char buf[256];
hChild=GetForegroundWindow();
do{
hMane=hChild;
hChild=GetParentHandle(hMane);
}while(hChild!=NULL);
GetWindowText(hMane,buf,sizeof(buf));
Form1->Caption=AnsiString(buf);

Мне надо получить Handle главной формы приложения которое на данный момент активно. А этот код возращает Handle просто активной формы.
Пример: запущен Builder 6.0, и в нем я правлю файл wgs_mane, мне надо чтоб программа вывела "C++ Builder 6 — wgs" а не "wgs_mane.cpp"

С уважением Duch
xTrim
Отправлено: 09.03.2004, 07:51


Машинист паровоза

Группа: Участник
Сообщений: 208



Я бы так сделал:
CODE

HWND hMane,hChild;
hChild=GetForegroundWindow();
do{
hMane=hChild;
hChild=(HWND)GetWindowLong(hMane, GWL_HWNDPARENT);
}while(hChild!=NULL);

if (hMane == NULL)
return;
const int i = GetWindowTextLength(hMane) + 1;
char* buf = new char[i];
GetWindowText(hMane, buf, i);
Edit1->Text=AnsiString(buf);


Вернуться в Вопросы программирования в C++Builder