![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
дочернее окно на WinAPI
Shiza © (2003-12-05 12:37:00)
Как создать дочернее окно для одной программы из другой dll-ки, вернее что передать в качестве параметра hInstance функции CreateWindow.
Shiza (2003-12-08 16:25:00) [1]
Удалено модератором
Игорь Шевченко (2003-12-06 00:30:00) [2]
Из справки по CreateWindow:
hInstance
Windows 95/98/Me: Handle to the instance of the module to be associated with the window.
Windows NT/2000/XP: This value is ignored.
В Win9x надо передавать тот Instance, в котором выполняется CreateWindow, в других без разницы, что передавать.
> где ошибка?:
> hinst:HWND
Это не ошибка, но небрежность.
DVM (2003-12-05 16:34:00) [3]
Можно и ничего не передавать - все равно работать будет.
BiN (2003-12-05 16:32:00) [4]
первое, что бросается в глаза - "TRichEdit"
такой класс может быть и незарегистрированным
ты лучше исходники Forms.pas глянь
Shiza (2003-12-05 16:04:00) [5]
Вот код, где ошибка?:
var
h,hinst:HWND;
r: TRECT;
begin
GetClientRect(ParentWin,r);
hinst:=GetModuleHandle(nil);
h:=CreateWindow("ТRichEdit","",WS_CHILD or ES_MULTILINE or ES_READONLY or WS_HSCROLL or WS_VSCROLL or ES_NOHIDESEL,r.left,r.top,r.right,r.bottom,ParentWin,0,hinst,nil);
result:=h;
{Application.CreateForm(TForm1, Form1);
form1.Caption:=inttostr(h);
form1.Show;}//код в кавычках для проверки хендла.
BiN (2003-12-05 12:59:00) [6]
Ты в дельфи пишешь - значит и передавай Hinstance
можешь, конечно, и GetModuleHandle(nil)