Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизRichEdit v2+ Найти похожие ветки
← →
Yuri Btr © (2006-04-07 17:44) [0]Добрый день, подскажите кто может:
я пытаюсь в своей программе использовать RichEdit, но так как компонент TRichEdit с закладки Win32 использует библиотеку первой версии (а мне нужно более поздние), я создаю динамически окно:
hRichEditLib:=LoadLibraryEx(PChar(RichEditModuleName),0,0);
hRichEdit:=CreateWindow(PChar(RichEditClassName),
PChar("RE1"),
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_MULTILINE or WS_VSCROLL or ES_NOHIDESEL or ES_DISABLENOSCROLL,
0,
P1.Height,
Self.ClientWidth,
Self.ClientHeight,
Self.Handle,
0,
0,
nil);
Причём
RichEditModuleName="MSFTEDIT.DLL"
RichEditClassName="RICHEDIT_CLASS" согласно MSDN,
но библиотека загружается, а окно не создаётся - GetLastError возвращает 1407 - "Class not found"
Почему бы это ?
← →
Fay © (2006-04-07 17:58) [1]А перекрыть CreateParams не помогает?
← →
Yuri Btr © (2006-04-07 18:03) [2]to Fay © (07.04.06 17:58) [1]
В смысле у TRichEdit перекрыть ???, то там надо перерыть весь код, я уже смотрел ...
← →
Yuri Btr © (2006-04-07 18:13) [3]Тем более что перекрывать надо по идее TCustomRichEdit.CreateParams, т.е. писать наследника TCustomRichEdit - фактически создавая дубликат TRichEdit"у
← →
Eraser © (2006-04-07 18:34) [4]
> Yuri Btr © (07.04.06 18:13) [3]
см. TjvRichEdit из JEDI VCL
← →
Yuri Btr © (2006-04-07 18:36) [5]to Eraser © (07.04.06 18:34) [4]
Погляжу, ОК
← →
Fay © (2006-04-07 19:18) [6]2 Yuri Btr © (07.04.06 18:03) [2]
> там надо перерыть весь код
Почему это весь?
← →
Yuri Btr © (2006-04-07 22:10) [7]to Fay © (07.04.06 19:18) [6]
Дело в том, что я не уверен, что можно через наследника TRichEdit перекрыть CreateParams у его предка TCustomRichEdit, я задал этот вопрос здесь - http://delphimaster.net/view/5-1144420112/ , но уважаемый мною MBo пока не ответил
Если вы знаете как это сделать, прошу вас написать
Но всё равно вопрос ветки останется открытым, почему класс RICHEDIT_CLASS не доступен ???
← →
Fay © (2006-04-08 04:03) [8]#define MSFTEDIT_CLASS L"RICHEDIT50W"
// NOTE: MSFTEDIT.DLL only registers MSFTEDIT_CLASS. If an application wants
// to use the following Richedit classes, it needs to load the riched20.dll.
// Otherwise, CreateWindow with RICHEDIT_CLASS would fail.
// This also applies to any dialog that uses RICHEDIT_CLASS,
// RichEdit 2.0 Window Class
// On Windows CE, avoid possible conflicts on Win95
#define CERICHEDIT_CLASSA "RichEditCEA"
#define CERICHEDIT_CLASSW L"RichEditCEW"
#define RICHEDIT_CLASSA "RichEdit20A"
#define RICHEDIT_CLASS10A "RICHEDIT" // Richedit 1.0
#ifndef MACPORT
#define RICHEDIT_CLASSW L"RichEdit20W"
#else //----------------------MACPORT
#define RICHEDIT_CLASSW TEXT("RichEdit20W") // MACPORT change
#endif // MACPORT
#if (_RICHEDIT_VER >= 0x0200 )
#ifdef UNICODE
#define RICHEDIT_CLASS RICHEDIT_CLASSW
#else
#define RICHEDIT_CLASS RICHEDIT_CLASSA
#endif // UNICODE
#else
#define RICHEDIT_CLASS RICHEDIT_CLASS10A
#endif // _RICHEDIT_VER >= 0x0200
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.009 c