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);
|
|
|
|