Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

Как передать в WndProc некий параметр?   Найти похожие ветки 

 
@!!ex ©   (2009-06-16 15:27) [0]

Суть проста, создается множество окон, обрабатываются все одной WndProc.
Нужно передавать некий ID, по которому можно отличить одно окно от другого. Hwnd не подходит, потому что тогда придется делать таблицу соответствий HWnd->ID, что не радует.


 
clickmaker ©   (2009-06-16 15:32) [1]

CreateWindow, параметр hMenu
потом GetWindowLong GWL_ID


 
Юрий Зотов ©   (2009-06-16 15:33) [2]

Уточните - это чистые окна Windows, или WinControl"ы Delphi?


 
clickmaker ©   (2009-06-16 15:37) [3]

> это чистые окна Windows

лето... пора мыть окна Windows -)


 
Юрий Зотов ©   (2009-06-16 15:40) [4]

В общем, если это чистые окна Windows, то я бы посмотрел в сторону Set/GetProp, а если Wincontrol"ы Delphi - то в сторону Tag.


 
@!!ex ©   (2009-06-16 15:40) [5]

> [1] clickmaker ©   (16.06.09 15:32)

Да, я примерно об этом и думаю.


> [2] Юрий Зотов ©   (16.06.09 15:33)

Чистый API.


 
Юрий Зотов ©   (2009-06-16 15:48) [6]

Тогда либо [1], либо Set/GetProp.


 
Игорь Шевченко ©   (2009-06-16 15:50) [7]

@!!ex ©   (16.06.09 15:40) [5]

Если сам создаешь окна, зарезервируй под них место в классе (cbWndExtra) и суй туда данные через SetWindowLong


 
@!!ex ©   (2009-06-16 15:53) [8]

> [7] Игорь Шевченко ©   (16.06.09 15:50)

Не понял...


 
@!!ex ©   (2009-06-16 15:54) [9]

cbWndExtra - это размер дополнительных данных?
а обращаться через GWL_USERDATA?


 
@!!ex ©   (2009-06-16 15:55) [10]

Нет, DWL_USER

А GWL_USERDATA без дополнительных ухищрений?
Это типа как Tag в дельфи?


 
Leonid Troyanovsky ©   (2009-06-16 16:06) [11]


> @!!ex ©   (16.06.09 15:27)  

> Суть проста, создается множество окон, обрабатываются все
> одной WndProc.

See MakeObjectInstance function.

--
Regargs, LVT.


 
Игорь Шевченко ©   (2009-06-16 16:07) [12]


> cbWndExtra - это размер дополнительных данных?


Да, кратен четырем обычно, заполняется при вызове RegisterClass


> а обращаться через GWL_USERDATA?


Обращаться через GetWindowLong(hWnd, 0), GetWindowLong(hWnd, 4)...

RTFM: GetWindowLong

GWL_USERDATA есть у каждого окна, но не факт, что оно не используется до тебя или после тебя.



Страницы: 1 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-1212058773
Vlad Oshin
2008-05-29 14:59
2009.08.16
DevExpress, TcxRTTIInspector. Как выловить rows=(TStrings)?


4-1214295759
Sashahttp
2008-06-24 12:22
2009.08.16
Определить "Код экземпляра устройства" (CD-ROM)


2-1245310159
abhtr
2009-06-18 11:29
2009.08.16
Как распечатать текст из TMemo?


2-1245355798
antonn
2009-06-19 00:09
2009.08.16
AV при доступе к объекту из потока


15-1245308606
тимохов
2009-06-18 11:03
2009.08.16
Ограничения VS 2088 Express и MSSQL Server 2008 Express