Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

дочернее окно на 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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо