Дискриптор окна "HWND"
Dr. Kren; 7.2.02

Привет всем!


Для обращения к системным WinAPI в ряде случаев необходимо передавать дискриптор окна, вызвавшего эта самую API.

HWND hWnd, // handle of owner window

Graphic Designer Runtime явно создает окно выполнения проекта, в котором и крутит *.PDL

Вопрос - подскажите, каким образом получить дискриптор этого окна в режиме RT.

Сразу скажу, что передача вместо дискриптора значения NULL приводит к неестественному поведению вызванной функции. Слета системы или проекта не происходит, но функция WinAPI отрабатывается несколько не так, как описывается в документации.
Проверялось в Delphi и CBuilder - при передаче дискриптора все работает как должно.
Re: Дискриптор окна
Alexis; 7.2.02

А так

HWND hWnd=FindWindow(NULL,"WinCC-Runtime - ");
Дескриптор окна
Евгений Трунов; 7.2.02

Что касается основного окна PDLRT, то действительно через FindWindow. Оно принадлежит классу <B>"PDLRTisAliveAndWaitsForYou"</B> и имеет заголовок <B>"WinCC-Runtime - "</B>.

Кстати, попытка изменить этот заголовок через SetWindowText работает как-то странно - меняет, но через какое-то время самопроизвольно возвращает старое названние <B>"WinCC-Runtime - "</B>.

А вот с произвольными графическими объектами в системе дело обстоит хуже. Они почти все принадлежат "классическим классам" MFC AfxFrameOrView42 и AfxWnd42. Если не делать всем различные заголовки, то получить HWND определенного picture window затруднительно.
Re: Дискриптор окна
Dr. Kren; 7.2.02

Всем привет!


To [Alexis; 7.2.02]
To [Евгений Трунов; 7.2.02]

Большое спасибо!

Как по маслу. И да же лучше!

С уважением ко всем...