Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Базовые оконные классы и 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.042 c
8-1136394990
ArtemESC
2006-01-04 20:16
2006.06.04
"Склеить" avi


10-1120228814
Juice
2005-07-01 18:40
2006.06.04
TLB->PAS


4-1142375379
wild sam
2006-03-15 01:29
2006.06.04
Сабклассинг TListBox - не ловится WM_DRAWITEM


2-1147849669
Creative
2006-05-17 11:07
2006.06.04
программа не входит в цикл


15-1147085301
BAngel
2006-05-08 14:48
2006.06.04
Скачать делфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский