2005. június 23., csütörtök

Windows Messages? Who,what?!


Problem/Question/Abstract:

How can I use Windows Message and what are they?

Answer:

Hey there manny people are asking what are Windows Messages let's say the Windows Messages are the heart of every Windows.Your application interactionates with other Windows using messages.

You can send or recive messages from the Windows operating systems.

Here is how to send

var
  yopos: Hwnd;
{...}
yopos := FindWindow(nil, 'program Manager');
ShowWindow(yopos, SW_HIDE);
{...}

you can use instead SW_SHOW,SW_MINIMIZE,SW_RESTORE etc;

here is how to close a window

SendMessage(Application.Handle, WM_CLOSE, 0, 0);

There are many examples to give but...

The most popular Windows Messages are:

WM_ACTIVATE: result := 'WM_ACTIVATE             ';
WM_ACTIVATEAPP: result := 'WM_ACTIVATEAPP          ';
WM_ASKCBFORMATNAME: result := 'WM_ASKCBFORMATNAME      ';
WM_CANCELMODE: result := 'WM_CANCELMODE           ';
WM_CHANGECBCHAIN: result := 'WM_CHANGECBCHAIN        ';
WM_CHAR: result := 'WM_CHAR                 ';
WM_CHARTOITEM: result := 'WM_CHARTOITEM           ';
WM_CHILDACTIVATE: result := 'WM_CHILDACTIVATE        ';
WM_CLEAR: result := 'WM_CLEAR                ';
WM_CLOSE: result := 'WM_CLOSE                ';
WM_COMMAND: result := 'WM_COMMAND              ';
WM_COMMNOTIFY: result := 'WM_COMMNOTIFY           ';
WM_COMPACTING: result := 'WM_COMPACTING           ';
WM_COMPAREITEM: result := 'WM_COMPAREITEM          ';
WM_COPY: result := 'WM_COPY                 ';
WM_CREATE: result := 'WM_CREATE               ';
WM_CTLCOLOR: result := 'WM_CTLCOLOR             ';
WM_CUT: result := 'WM_CUT                  ';
WM_DDE_ACK: result := 'WM_DDE_ACK              ';
WM_DDE_ADVISE: result := 'WM_DDE_ADVISE           ';
WM_DDE_DATA: result := 'WM_DDE_DATA             ';
WM_DDE_EXECUTE: result := 'WM_DDE_EXECUTE          ';
WM_DDE_INITIATE: result := 'WM_DDE_INITIATE         ';
WM_DDE_POKE: result := 'WM_DDE_POKE             ';
WM_DDE_REQUEST: result := 'WM_DDE_REQUEST          ';
WM_DDE_TERMINATE: result := 'WM_DDE_TERMINATE        ';
WM_DDE_UNADVISE: result := 'WM_DDE_UNADVISE         ';
WM_DEADCHAR: result := 'WM_DEADCHAR             ';
WM_DELETEITEM: result := 'WM_DELETEITEM           ';
WM_DESTROY: result := 'WM_DESTROY              ';
WM_DESTROYCLIPBOARD: result := 'WM_DESTROYCLIPBOARD     ';
WM_DEVMODECHANGE: result := 'WM_DEVMODECHANGE        ';
WM_DRAWCLIPBOARD: result := 'WM_DRAWCLIPBOARD        ';
WM_DRAWITEM: result := 'WM_DRAWITEM             ';
WM_DROPFILES: result := 'WM_DROPFILES            ';
WM_ENABLE: result := 'WM_ENABLE               ';
WM_ENDSESSION: result := 'WM_ENDSESSION           ';
WM_ENTERIDLE: result := 'WM_ENTERIDLE            ';
WM_ERASEBKGND: result := 'WM_ERASEBKGND           ';
WM_FONTCHANGE: result := 'WM_FONTCHANGE           ';
WM_GETDLGCODE: result := 'WM_GETDLGCODE           ';
WM_GETFONT: result := 'WM_GETFONT              ';
WM_GETMINMAXINFO: result := 'WM_GETMINMAXINFO        ';
WM_GETTEXT: result := 'WM_GETTEXT              ';
WM_GETTEXTLENGTH: result := 'WM_GETTEXTLENGTH        ';
WM_HSCROLL: result := 'WM_HSCROLL              ';
WM_HSCROLLCLIPBOARD: result := 'WM_HSCROLLCLIPBOARD     ';
WM_ICONERASEBKGND: result := 'WM_ICONERASEBKGND       ';
WM_INITDIALOG: result := 'WM_INITDIALOG           ';
WM_INITMENU: result := 'WM_INITMENU             ';
WM_INITMENUPOPUP: result := 'WM_INITMENUPOPUP        ';
WM_KEYDOWN: result := 'WM_KEYDOWN              ';
WM_KEYUP: result := 'WM_KEYUP                ';
WM_KILLFOCUS: result := 'WM_KILLFOCUS            ';
WM_LBUTTONDBLCLK: result := 'WM_LBUTTONDBLCLK        ';
WM_LBUTTONDOWN: result := 'WM_LBUTTONDOWN          ';
WM_LBUTTONUP: result := 'WM_LBUTTONUP            ';
WM_MBUTTONDBLCLK: result := 'WM_MBUTTONDBLCLK        ';
WM_MBUTTONDOWN: result := 'WM_MBUTTONDOWN          ';
WM_MBUTTONUP: result := 'WM_MBUTTONUP            ';
WM_MDIACTIVATE: result := 'WM_MDIACTIVATE          ';
WM_MDICASCADE: result := 'WM_MDICASCADE           ';
WM_MDICREATE: result := 'WM_MDICREATE            ';
WM_MDIDESTROY: result := 'WM_MDIDESTROY           ';
WM_MDIGETACTIVE: result := 'WM_MDIGETACTIVE         ';
WM_MDIICONARRANGE: result := 'WM_MDIICONARRANGE       ';
WM_MDIMAXIMIZE: result := 'WM_MDIMAXIMIZE          ';
WM_MDINEXT: result := 'WM_MDINEXT              ';
WM_MDIRESTORE: result := 'WM_MDIRESTORE           ';
WM_MDISETMENU: result := 'WM_MDISETMENU           ';
WM_MDITILE: result := 'WM_MDITILE              ';
WM_MEASUREITEM: result := 'WM_MEASUREITEM          ';
WM_MENUCHAR: result := 'WM_MENUCHAR             ';
WM_MENUSELECT: result := 'WM_MENUSELECT           ';
WM_MOUSEACTIVATE: result := 'WM_MOUSEACTIVATE        ';
WM_MOUSEMOVE: result := 'WM_MOUSEMOVE            ';
WM_MOVE: result := 'WM_MOVE                 ';
WM_NCACTIVATE: result := 'WM_NCACTIVATE           ';
WM_NCCALCSIZE: result := 'WM_NCCALCSIZE           ';
WM_NCCREATE: result := 'WM_NCCREATE             ';
WM_NCDESTROY: result := 'WM_NCDESTROY            ';
WM_NCHITTEST: result := 'WM_NCHITTEST            ';
WM_NCLBUTTONDBLCLK: result := 'WM_NCLBUTTONDBLCLK      ';
WM_NCLBUTTONDOWN: result := 'WM_NCLBUTTONDOWN        ';
WM_NCLBUTTONUP: result := 'WM_NCLBUTTONUP          ';
WM_NCMBUTTONDBLCLK: result := 'WM_NCMBUTTONDBLCLK      ';
WM_NCMBUTTONDOWN: result := 'WM_NCMBUTTONDOWN        ';
WM_NCMBUTTONUP: result := 'WM_NCMBUTTONUP          ';
WM_NCMOUSEMOVE: result := 'WM_NCMOUSEMOVE          ';
WM_NCPAINT: result := 'WM_NCPAINT              ';
WM_NCRBUTTONDBLCLK: result := 'WM_NCRBUTTONDBLCLK      ';
WM_NCRBUTTONDOWN: result := 'WM_NCRBUTTONDOWN        ';
WM_NCRBUTTONUP: result := 'WM_NCRBUTTONUP          ';
WM_NEXTDLGCTL: result := 'WM_NEXTDLGCTL           ';
WM_PAINT: result := 'WM_PAINT                ';
WM_PAINTCLIPBOARD: result := 'WM_PAINTCLIPBOARD       ';
WM_PALETTECHANGED: result := 'WM_PALETTECHANGED       ';
WM_PALETTEISCHANGING: result := 'WM_PALETTEISCHANGING    ';
WM_PARENTNOTIFY: result := 'WM_PARENTNOTIFY         ';
WM_PASTE: result := 'WM_PASTE                ';
WM_POWER: result := 'WM_POWER                ';
WM_QUERYDRAGICON: result := 'WM_QUERYDRAGICON        ';
WM_QUERYENDSESSION: result := 'WM_QUERYENDSESSION      ';
WM_QUERYNEWPALETTE: result := 'WM_QUERYNEWPALETTE      ';
WM_QUERYOPEN: result := 'WM_QUERYOPEN            ';
WM_QUEUESYNC: result := 'WM_QUEUESYNC            ';
WM_QUIT: result := 'WM_QUIT                 ';
WM_RBUTTONDBLCLK: result := 'WM_RBUTTONDBLCLK        ';
WM_RBUTTONDOWN: result := 'WM_RBUTTONDOWN          ';
WM_RBUTTONUP: result := 'WM_RBUTTONUP            ';
WM_RENDERALLFORMATS: result := 'WM_RENDERALLFORMATS     ';
WM_RENDERFORMAT: result := 'WM_RENDERFORMAT         ';
WM_SETCURSOR: result := 'WM_SETCURSOR            ';
WM_SETFOCUS: result := 'WM_SETFOCUS             ';
WM_SETFONT: result := 'WM_SETFONT              ';
WM_SETREDRAW: result := 'WM_SETREDRAW            ';
WM_SETTEXT: result := 'WM_SETTEXT              ';
WM_SHOWWINDOW: result := 'WM_SHOWWINDOW           ';
WM_SIZE: result := 'WM_SIZE                 ';
WM_SIZECLIPBOARD: result := 'WM_SIZECLIPBOARD        ';
WM_SPOOLERSTATUS: result := 'WM_SPOOLERSTATUS        ';
WM_SYSCHAR: result := 'WM_SYSCHAR              ';
WM_SYSCOLORCHANGE: result := 'WM_SYSCOLORCHANGE       ';
WM_SYSCOMMAND: result := 'WM_SYSCOMMAND           ';
WM_SYSDEADCHAR: result := 'WM_SYSDEADCHAR          ';
WM_SYSKEYDOWN: result := 'WM_SYSKEYDOWN           ';
WM_SYSKEYUP: result := 'WM_SYSKEYUP             ';
WM_SYSTEMERROR: result := 'WM_SYSTEMERROR          ';
WM_TIMECHANGE: result := 'WM_TIMECHANGE           ';
WM_TIMER: result := 'WM_TIMER                ';
WM_UNDO: result := 'WM_UNDO                 ';
WM_USER: result := 'WM_USER                 ';
WM_VKEYTOITEM: result := 'WM_VKEYTOITEM           ';
WM_VSCROLL: result := 'WM_VSCROLL              ';
WM_VSCROLLCLIPBOARD: result := 'WM_VSCROLLCLIPBOARD     ';
WM_WINDOWPOSCHANGED: result := 'WM_WINDOWPOSCHANGED     ';
WM_WINDOWPOSCHANGING: result := 'WM_WINDOWPOSCHANGING    ';
WM_WININICHANGE: result := 'WM_WININICHANGE         ';

You can use these messages using this example:

private

procedure lik(var Msg: TWMNCHITTEST); message WM_NCHITTEST;
public

procedure TForm1.lik(var Msg: TWMNCHITTEST);
begin
  inherited;
  if tx = true then
  begin
    if Msg.Result = Windows.HTMINBUTTON then
      Application.Minimize
    else if Msg.Result = Windows.HTCLOSE then
      Close;
  end;
end;

Nincsenek megjegyzések:

Megjegyzés küldése