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

Вниз

Базовые оконные классы и RegisterClassW   Найти похожие ветки 

 
capkoh ©   (2005-11-25 18:46) [0]

Этот вопрос не предназначен для тех, кто говорит: "А зачем? Всё уже готовое есть."

Известно, что для того, чтобы окно (TEdit...) могло понимать Юникод, требуется использовать функцию регистрации класса окна - RegisterClassW (при этом функция IsWindowUnicode должна вернуть True; сейчас она возвращает False). Если RegisterClassW не использовать, то сообщения WM_UNICHAR не посылаются, а посылаются WM_CHAR с обрезанным wParam. Суть вопроса в том, как сделать регистрацию окна компонента Delphi (наследника TCustomControl), использую RegisterClassW? По-видимому, нужно что-то делать с процедурой

procedure TWinControl.CreateWnd;

в которой происходит регистрация окна. Но как?


 
Чапаев ©   (2005-11-26 10:21) [1]


> нужно что-то делать с процедурой

Ага.


> Но как?

Процедура -- virtual. Сделай в своём классе override, скопируй код TWinControl.CreateWnd и замени RegisterClassA на RegisterClassW.


 
capkoh ©   (2005-11-26 13:32) [2]

Так просто не получится. Замена на RegisterClassW приведет к смене типа регистрируемого класса на TWNDClassW, а у нас он в:

 TCreateParams = record
   Caption: PChar;
   Style: DWORD;
   ExStyle: DWORD;
   X, Y: Integer;
   Width, Height: Integer;
   WndParent: HWnd;
   Param: Pointer;
   WindowClass: TWndClass;
   WinClassName: array[0..63] of Char;
 end;

Заменяя тут на TWNDClassW нужно изменить .CreateParams и т.д....
От чего "минимально" можно унаследоваться, чтобы это могло отображаться в дизайнере?



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
2-1147683658
worldmen
2006-05-15 13:00
2006.06.04
Конвертация символов из Win кодировки в DOS


1-1145988512
gear
2006-04-25 22:08
2006.06.04
Как примагнитить одну форму к другой?


2-1147873925
Мурзилка
2006-05-17 17:52
2006.06.04
ещё вопрос по TTreeView


2-1147878626
Sapan
2006-05-17 19:10
2006.06.04
Создание процедуры в Delphi7


1-1146283663
IKV
2006-04-29 08:07
2006.06.04
CreateOleObject