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

Вниз

Не ловятся messages в невидимом окне безформенного проекта...   Найти похожие ветки 

 
Makhanev A.S. ©   (2004-02-16 22:25) [0]

В проекте без форм не ловятся windows messages в создаваемом окне.

Привожу только процедуру создания окна-приёмника:

function CreateInVisibleWindow(const WndClass: string; Method: TWndMethod): HWND;
var
UtilWindowClass: TWndClass;

function AllocateWnd(Method: TWndMethod): HWND;
var
TempClass: TWndClass;
ClassRegistered: Boolean;
begin
UtilWindowClass.hInstance := HInstance;
{$IFDEF PIC}
UtilWindowClass.lpfnWndProc := @DefWindowProc;
{$ENDIF}
ClassRegistered := GetClassInfo(HInstance, UtilWindowClass.lpszClassName,
TempClass);
if not ClassRegistered or (TempClass.lpfnWndProc <> @DefWindowProc) then
begin
if ClassRegistered then
Windows.UnregisterClass(UtilWindowClass.lpszClassName, HInstance);
Windows.RegisterClass(UtilWindowClass);
end;
Result := CreateWindowEx(WS_EX_TOOLWINDOW, UtilWindowClass.lpszClassName,
"", WS_POPUP {!0}, 0, 0, 0, 0, 0, 0, HInstance, nil);
if Assigned(Method) then
if SetWindowLong(Result, GWL_WNDPROC, Longint(MakeObjectInstance(Method))) = 0
then ShowMessage("error");
end;

begin
with UtilWindowClass do
begin
style := 0;
lpfnWndProc := @DefWindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := 0;
hIcon := 0;
hCursor := 0;
hbrBackground := 0;
lpszMenuName := nil;
lpszClassName := PChar(WndClass);
end;

Result := AllocateWnd(Method);

end;


В случае с обычным Application всё проходит, сообщения ловятся.

Всё никак не пойму, почему Method ловит при старте только WM_ACTIVATEAPP - и больше ничего:(

Могу привести больше кода, но думаю, что если кто сталкивался, ответит и без него. Этот же код в обычном случае (Application) работает без проблем.

Буду очень благодарен за ответы.


 
Makhanev A.S. ©   (2004-02-16 22:30) [1]

да, забыл добавить:
в данном случае (без application) хэндл окна валиден, оно находится FindWindow, никаких result=0 нет.

просто TWndMethod не ловит мои сообщения (WM_User+[1..200]).

OS: WinXP
IDE: Delphi7


 
Alex Konshin ©   (2004-02-16 22:43) [2]

А кто их у тебя ловит? Ты цикл чтения этих сообщений организовал?


 
Makhanev A.S. ©   (2004-02-16 23:50) [3]


> Alex Konshin © (16.02.04 22:43) [2]

Спасибо за наводку.
Всё получилось.
Разобрался.

Ещё раз спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
8-25829
Evgeniy_K
2003-11-06 19:16
2004.03.09
Отображение точки x, y, z


1-25822
Berezne
2004-02-25 16:56
2004.03.09
Вопрос по DLL


6-25839
Unknown
2003-12-30 12:18
2004.03.09
Поиск сервера в подсети класса C


14-25923
Cardinal
2004-02-14 15:19
2004.03.09
UPX Shell с ее защитой от декомпрессии


6-25841
Mouse
2003-12-30 17:09
2004.03.09
Проблема с ClientSocket