| | | ÎÒ²»¼ûÁË | | 2000-08-30¡¤
¡¤ÎâÖÐÎÀ¡¤¡¤yesky
| | ÎÒ²»¼ûÁË
¡¡¡¡Õâ»Ø»¹ÊǵÃÒÀ¿¿Win32 Fun Call¡£ÓÐЩVCL²»ÄÜʵÏֵŦÄÜ£¬²»ÓÃËû±äͨһÏÂÊÇ×ß²»Í¨µÄ¡£ÕýÈçÓÐÁ˽î¹Ç°ô£¬Ã»ÓдÏÃ÷µÄÄÔ´üÒ»ÑùҲȡ²»Á˾¡£
¡¡¡¡Ò»°ãÀ´Ëµ£¬ÒþÉíÊõ¿ÉÒÔÓÃÀ´Òþ²Ø±êÌ⣬Application.Title»òTForm.Caption,»òÔÚTASKBARÉϲ»¿É¼û£¬ÆäÐÐΪ¾ÍÏñÊÇShowMessageÒ»Ñù£¬²»¹ýÕâÀïÊÇFormÈÝÆ÷¡£
¡¡¡¡ÎÒÃÇÏÈÀ´¿´Ò»¿´ÕâÓëÉèÖÃBorderIconsΪ[](¿Õ)ʱÓÐʲô²»Í¬¡£
¡¡¡¡µ±BorderIcons±»¸³ÖµÎª[]£¬»òÔÚFormÉè¼ÆÊ±ÈÃËûΪ[]£¬ÄÇôÔÚÔËÐÐʱ¾Í»á»áÏóÒ»¸öÎÞ3DÊôÐÔµÄPanelÒ»Ñù¡£
¡¡¡¡ÎÒÃÇÖªµÀ£¬ÔÚTFormµÄÊôÐÔÀﻹÓÐÒ»¸öBorderStyleµÄÊôÐÔ£¬µ±ÎÒÃǹرÕFormµÄÏÔʾ·ç¸ñ£¬¼´¸³ÖµBorderStyleΪbsNoneʱÓÖ³ÉΪһ¸öÔÚ×ÀÃæÉϵĻÒɫͼÏó¡£
¡¡¡¡¶øÀûÓÃSetWindowLong×÷ÓÃÓÚFormʱµÄ±íÏÖÊÇ£¬CaptionÒÔÉϲ¿·Ö¶ÔÊó±ê£¬Ã»Óз´Ó¦£¡Èç¹ûÕâʱÈÃHeightµÈÓÚClientHeight£¬Äã¿´Ïñ²»ÏñÕýÔÚ×öÒ»¸öFlash,(¾ÍÊÇDelphiÆô¶¯Ê±µÄÄǸö»Ãæ).
¡¡¡¡²»¹ýÓ¦¸Ã×¢ÒâµÄÊÇ£¬SetWindowLong¶ÔApplicationºÍTFormµÄ×÷Óá¢Ð§¹ûºÍÔËÐÐʱµÄ±íÏÖ¶¼²»Ò»Ñù¡£¶ÔApplication¶øÑÔ£¬SetWindowLong×¢ÖØApplicationÔÚWin9x¡¢Win2kµÄµÇ¼ÇʱµÄÀàÐÍClass Style,¶øFormÔòÊDzàÖØ±íÏÖ·ç¸ñ¡£Óɴ˲úÉúµÄʵ¼ÊÓÃ;ҲÊDz»Í¬µÄ¡£ÎÒÃÇÓÃSetWindowLong×÷ÓÃÓÚApplication.HandleÊÇÒþÉí£¬¶ã±Ü×·×Ù£¬ÔÚCTRL+ALT+DELµÄÈÎÎñÁбíÖв»¿É¼û£¬¶ø×÷ÓÃÔÚForm.HandleÉÏÒ»°ãÓÃÀ´×ö͸Ã÷´°Ìå»òFlash»Ãæ¡£
¡¡¡¡ÏÂÃæÊǺ¯ÊýÔÐÍ£º
¡¡¡¡LONG SetWindowLong(
¡¡¡¡HWND hWnd, //±»ÉèÖÃStyleµÄµÄ´°¿Ú¾ä±ú
¡¡¡¡int nIndex, //ÔÚÊôÐÔ¼¯ºÏÀïµÄË÷ÒýÖµ
¡¡¡¡LONG dwNewLong //еÄÊôÐÔÖµ
¡¡¡¡);
¡¡¡¡ÔÚÆÕͨ´°¿ÚÖÐnIndexÊôÐÔ¼¯ºÏΪ
¡¡¡¡
¡¡¡¡GWL_EXSTYLE ÉèÖÃΪеÄÀ©Õ¹·ç¸ñ
¡¡¡¡GWL_STYLE ÉèÖÃΪзç¸ñ
¡¡¡¡GWL_WNDPROC ÉèÖÃеÄÏûÏ¢º¯ÊýµØÖ·
¡¡¡¡GWL_HINSTANCE ÉèÖÃеÄApplication¾ä±ú
¡¡¡¡GWL_ID ÉèÖÃеĴ°¿Ú±íʶ
¡¡¡¡GWL_USERDATA ÉèÖÃÓë´°¿Ú¶ÔÓ¦µÄÒ»¸ö32λÊýÖµ¡£Ã¿Ò»¸öÕâÑùµÄ¸ÃÊýÖµ¶¼´ú±í
¡¡¡¡Ò»¸ö½¨Á¢Á˵Ĵ°¿Ú
¡¡¡¡µ±¸Ã´°¿ÚΪ¶Ô»°¿òʱ£¬ÆäÊôÐÔ¼¯ºÏºÍÒâÒåÈçÏ£º
¡¡¡¡
¡¡¡¡DWL_DLGPROC ÉèÖÃеĶԻ°¿òÏûÏ¢º¯ÊýµØÖ·
¡¡¡¡DWL_MSGRESULT ÉèÖöԻ°¿òµÄ·µ»ØÖµ
¡¡¡¡DWL_USER ÉèÖÃ˽ÓеÄÐÅÏ¢£¬ÈçÖ¸Õë¡¢º¯ÊýµÈ.
¡¡¡¡
¡¡¡¡ÏÖÔÚÓÐÁËÒ»¸öÎÊÌ⣬ÄǾÍÊÇÎÒÃÇÔõô֪µÀÐèÒªÉèÖ÷ç¸ñµÄ´°¿ÚÔÀ´ÓжàÉÙÊôÐÔÄØ£¬Õâ¾ÍÊÇGetWindowLongµÄ×÷ÓÃÁË£¬GetWindowLongÓëSetWindowLongÔÚ²ÎÊýµÄº¬ÒåÉÏÊÇÒ»ÑùµÄ£¬ÒòΪÊÇ·µ»Ø´°¿ÚµÄÏÖÓÐÊôÐÔ£¬Òò´Ë »ÓеÚÈý¸ö²ÎÊý£º
¡¡¡¡LONG SetWindowLong(
¡¡¡¡HWND hWnd, //±»ÉèÖÃStyleµÄµÄ´°¿Ú¾ä±ú
¡¡¡¡int nIndex //ÔÚÊôÐÔ¼¯ºÏÀïµÄË÷ÒýÖµ
¡¡¡¡);
¡¡¡¡ÓÐÁËÒÔÉϵÄ×¼±¸£¬ÎÒÃǾÍÀ´³¢ÊÔÒ»ÏÂËûÃǵÄ×÷Óá£ÏÈÓÃApplicationÊÔÊÔ£º
¡¡¡¡TaskBarÉϵÄÓ¦Óò»¼ûÁË
¡¡¡¡(ÔÚ¹¤³ÌÎļþÀï)
¡¡¡¡uses
¡¡¡¡Windows,
¡¡¡¡Forms,
¡¡¡¡...
¡¡¡¡;
¡¡¡¡{$R *.RES}
¡¡¡¡begin
¡¡¡¡With Application Do
¡¡¡¡try
¡¡¡¡//°ÑÓ¦ÓõÄÊôÐÔÉèÖÃΪ¹¤¾ß´°¿ÚÑùʽ
¡¡¡¡SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) OR WS_EX_TOOLWINDOW);
¡¡¡¡Initialize;
¡¡¡¡Title := ÑÝʾ³ÌÐò;
¡¡¡¡// CreateForm(...);
¡¡¡¡...
¡¡¡¡Run;
¡¡¡¡finally
¡¡¡¡Terminate;
¡¡¡¡end;end.
¡¡¡¡
¡¡¡¡È»ºóתµ½FormÀï¼ìÑéForm.Handleprocedure TForm1.FormCreate(Sender: TObject);begin
¡¡¡¡//²»Òª±êÌâÀ¹
¡¡¡¡SetWindowLong(Handle,GWL_STYLE,
¡¡¡¡GetWindowLong(Handle,GWL_STYLE) and not WS_CAPTION);
¡¡¡¡Height := ClientHeight;end;
¡¡¡¡
¡¡¡¡ºÙºÙ£¬±ä³ÉFlash ScreenÁË¡£
¡¡¡¡ÏÂÃæÊÇһЩ³£Óõķç¸ñÑùʽ£¨×ªÔØ×ÔWindows.pas£©:
¡¡¡¡{$EXTERNALSYM WS_OVERLAPPED}
¡¡¡¡WS_OVERLAPPED = 0;
¡¡¡¡{$EXTERNALSYM WS_POPUP}
¡¡¡¡WS_POPUP = DWORD($80000000);
¡¡¡¡{$EXTERNALSYM WS_CHILD}
¡¡¡¡WS_CHILD = $40000000;
¡¡¡¡{$EXTERNALSYM WS_MINIMIZE}
¡¡¡¡WS_MINIMIZE = $20000000;
¡¡¡¡{$EXTERNALSYM WS_VISIBLE}
¡¡¡¡WS_VISIBLE = $10000000;
¡¡¡¡{$EXTERNALSYM WS_DISABLED}
¡¡¡¡WS_DISABLED = $8000000;
¡¡¡¡{$EXTERNALSYM WS_CLIPSIBLINGS}
¡¡¡¡WS_CLIPSIBLINGS = $4000000;
¡¡¡¡{$EXTERNALSYM WS_CLIPCHILDREN}
¡¡¡¡WS_CLIPCHILDREN = $2000000;
¡¡¡¡{$EXTERNALSYM WS_MAXIMIZE}
¡¡¡¡WS_MAXIMIZE = $1000000;
¡¡¡¡{$EXTERNALSYM WS_CAPTION}
¡¡¡¡WS_CAPTION = $C00000; { WS_BORDER or WS_DLGFRAME }
¡¡¡¡{$EXTERNALSYM WS_BORDER}
¡¡¡¡WS_BORDER = $800000;
¡¡¡¡{$EXTERNALSYM WS_DLGFRAME}
¡¡¡¡WS_DLGFRAME = $400000;
¡¡¡¡{$EXTERNALSYM WS_VSCROLL}
¡¡¡¡WS_VSCROLL = $200000;
¡¡¡¡{$EXTERNALSYM WS_HSCROLL}
¡¡¡¡WS_HSCROLL = $100000;
¡¡¡¡{$EXTERNALSYM WS_SYSMENU}
¡¡¡¡WS_SYSMENU = $80000;
¡¡¡¡{$EXTERNALSYM WS_THICKFRAME}
¡¡¡¡WS_THICKFRAME = $40000;
¡¡¡¡{$EXTERNALSYM WS_GROUP}
¡¡¡¡WS_GROUP = $20000;
¡¡¡¡{$EXTERNALSYM WS_TABSTOP}
¡¡¡¡WS_TABSTOP = $10000;
¡¡¡¡{$EXTERNALSYM WS_MINIMIZEBOX}
¡¡¡¡WS_MINIMIZEBOX = $20000;
¡¡¡¡{$EXTERNALSYM WS_MAXIMIZEBOX}
¡¡¡¡WS_MAXIMIZEBOX = $10000;
¡¡¡¡{$EXTERNALSYM WS_TILED}
¡¡¡¡WS_TILED = WS_OVERLAPPED;
¡¡¡¡{$EXTERNALSYM WS_ICONIC}
¡¡¡¡WS_ICONIC = WS_MINIMIZE;
¡¡¡¡{$EXTERNALSYM WS_SIZEBOX}
¡¡¡¡WS_SIZEBOX = WS_THICKFRAME;
¡¡¡¡{ͨÓô°¿ÚÑùʽ}
¡¡¡¡{$EXTERNALSYM WS_OVERLAPPEDWINDOW}
¡¡¡¡WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
¡¡¡¡WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
¡¡¡¡{$EXTERNALSYM WS_TILEDWINDOW}
¡¡¡¡WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
¡¡¡¡{$EXTERNALSYM WS_POPUPWINDOW}
¡¡¡¡WS_POPUPWINDOW = (WS_POPUP or WS_BORDER or WS_SYSMENU);
¡¡¡¡{$EXTERNALSYM WS_CHILDWINDOW}
¡¡¡¡WS_CHILDWINDOW = (WS_CHILD);
¡¡¡¡{À©Õ¹´°¿ÚÑùʽ}
¡¡¡¡{$EXTERNALSYM WS_EX_DLGMODALFRAME}
¡¡¡¡WS_EX_DLGMODALFRAME = 1;
¡¡¡¡{$EXTERNALSYM WS_EX_NOPARENTNOTIFY}
¡¡¡¡WS_EX_NOPARENTNOTIFY = 4;
¡¡¡¡{$EXTERNALSYM WS_EX_TOPMOST}
¡¡¡¡WS_EX_TOPMOST = 8;
¡¡¡¡{$EXTERNALSYM WS_EX_ACCEPTFILES}
¡¡¡¡WS_EX_ACCEPTFILES = $10;
¡¡¡¡{$EXTERNALSYM WS_EX_TRANSPARENT}
¡¡¡¡WS_EX_TRANSPARENT = $20;
¡¡¡¡{$EXTERNALSYM WS_EX_MDICHILD}
¡¡¡¡WS_EX_MDICHILD = $40;
¡¡¡¡{$EXTERNALSYM WS_EX_TOOLWINDOW}
¡¡¡¡WS_EX_TOOLWINDOW = $80;
¡¡¡¡{$EXTERNALSYM WS_EX_WINDOWEDGE}
¡¡¡¡WS_EX_WINDOWEDGE = $100;
¡¡¡¡{$EXTERNALSYM WS_EX_CLIENTEDGE}
¡¡¡¡WS_EX_CLIENTEDGE = $200;
¡¡¡¡{$EXTERNALSYM WS_EX_CONTEXTHELP}
¡¡¡¡WS_EX_CONTEXTHELP = $400;
¡¡¡¡{$EXTERNALSYM WS_EX_RIGHT}
¡¡¡¡WS_EX_RIGHT = $1000;
¡¡¡¡{$EXTERNALSYM WS_EX_LEFT}
¡¡¡¡WS_EX_LEFT = 0;
¡¡¡¡{$EXTERNALSYM WS_EX_RTLREADING}
¡¡¡¡WS_EX_RTLREADING = $2000;
¡¡¡¡{$EXTERNALSYM WS_EX_LTRREADING}
¡¡¡¡WS_EX_LTRREADING = 0;
¡¡¡¡{$EXTERNALSYM WS_EX_LEFTSCROLLBAR}
¡¡¡¡WS_EX_LEFTSCROLLBAR = $4000;
¡¡¡¡{$EXTERNALSYM WS_EX_RIGHTSCROLLBAR}
¡¡¡¡WS_EX_RIGHTSCROLLBAR = 0;
¡¡¡¡{$EXTERNALSYM WS_EX_CONTROLPARENT}
¡¡¡¡WS_EX_CONTROLPARENT = $10000;
¡¡¡¡{$EXTERNALSYM WS_EX_STATICEDGE}
¡¡¡¡WS_EX_STATICEDGE = $20000;
¡¡¡¡{$EXTERNALSYM WS_EX_APPWINDOW}
¡¡¡¡WS_EX_APPWINDOW = $40000;
¡¡¡¡{$EXTERNALSYM WS_EX_OVERLAPPEDWINDOW}
¡¡¡¡WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE);
¡¡¡¡{$EXTERNALSYM WS_EX_PALETTEWINDOW}
¡¡¡¡WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST);
¡¡¡¡
¡¡¡¡
| | | ¸Ðл
·ÃÎÊÌì¼«Íø£¬Èç¹ûÄú¾õµÃ¸ÃÎÄÕÂÉæ¼°°æÈ¨ÎÊÌ⣬Çë¿´ÕâÀ
|
|