Форум: "Потрепаться";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
ВнизНе ловятся 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c