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

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

wm_quit


Res ©   (2008-05-03 18:27:00) 

Здравствуйте, подскажите пожалуйста как словить сообщение "wm_quit", на winapi.


DVM   (2008-05-03 19:53:00) [1]


> Res   (03.05.08 19:33) [4]
> Незнаю я ваще как ловить сообщения.. до этого пользовался
> стандартными эвентами (VCL), но сейчас нужно на winapi.

программа вся тоже будет на API? Тогда в цикле сообщений как только GetMessage вернет 0 значит словили WM_QUIT. Вот пример программы на API. Тут правда нет анализа возврата некоторых функций.


program winmin;

uses
 windows, messages;

var
 wc: TWndClassEx;
 MainWnd: HWND;
 Mesg: TMsg;

function WindowProc(wnd: HWND; Msg: Integer; Wparam: Wparam; Lparam: Lparam): Lresult; stdcall;
begin
 case msg of
   WM_DESTROY:
     begin
       postquitmessage(0);
       Result := 0;
       exit;
     end;
 else
   Result := DefWindowProc(wnd, msg, wparam, lparam);
 end;
end;

var
 xPos, yPos, nWidth, nHeight: Integer;

begin
 wc.cbSize := SizeOf(wc);
 wc.style := cs_hredraw or cs_vredraw;
 wc.lpfnWndProc := @WindowProc;
 wc.cbClsExtra := 0;
 wc.cbWndExtra := 0;
 wc.hInstance := HInstance;
 wc.hIcon := LoadIcon(0, idi_application);
 wc.hCursor := LoadCursor(0, idc_arrow);
 wc.hbrBackground := COLOR_BTNFACE + 1;
 wc.lpszMenuName := nil;
 wc.lpszClassName := 'WndClass1';

 RegisterClassEx(wc);

 xPos:=100;
 yPos:=150;
 nWidth:=400;
 nHeight:=250;

 MainWnd:=CreateWindowEx(0,'WndClass1', 'Caption', ws_overlappedwindow,
                         xPos, yPos, nWidth, nHeight, 0, 0, Hinstance,nil);

 ShowWindow(MainWnd, CmdShow);

 while GetMessage(Mesg, 0, 0, 0)do
   begin
     TranslateMessage(Mesg);
     DispatchMessage(Mesg);
   end;
end.


palva   (2008-05-03 19:36:00) [2]

У вас есть очередь сообщений? Вот там это сообщение и должно появиться.


Res   (2008-05-03 19:33:00) [3]

Незнаю я ваще как ловить сообщения.. до этого пользовался стандартными эвентами (VCL), но сейчас нужно на winapi.


Мистер Т   (2008-05-03 19:24:00) [4]

ну приведи код того, что знаешь...


Res   (2008-05-03 18:38:00) [5]

Если бы я знал, как любое ловить...


DVM   (2008-05-03 18:31:00) [6]

Так же как и любое другое. А что не получается то?


Наверх

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