Главная страница
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.015 c
3-25696
Дмитрий Татарников
2004-02-07 02:26
2004.03.09
Ошибки в таблицах Paradox


14-25876
Creator
2004-02-17 13:51
2004.03.09
Handle


14-25882
Tarantul
2004-02-16 19:27
2004.03.09
Drag&Drop


1-25758
Pahan_
2004-02-26 16:16
2004.03.09
Drag n Drop в наследнике от TTreeView


8-25826
Zeus_Chess
2003-11-05 10:50
2004.03.09
РАБОТА С *.mp3