|
导读通常在应用程序的主窗体中,利用鼠标左键点击左上角的图标,会弹出一个菜单,称之为“系统菜单”,在窗体中并没有系统菜单对应的组件,所以有时需要定制系统菜单时就比较麻烦。可以通过下面的步骤实现: 1) 在... 通常在应用程序的主窗体中,利用鼠标左键点击左上角的图标,会弹出一个菜单,称之为“系统菜单”,在窗体中并没有系统菜单对应的组件,所以有时需要定制系统菜单时就比较麻烦。可以通过下面的步骤实现: 1) 在系统菜单上添加所需的菜单项。 2) 为新添加的菜单项定义O n C l i c k 事件的处理过程。 在该例程中,在系统菜单中添加了一个“前端显示( A )”菜单项,通过该菜单项,可以使窗体始终显示在最前端或为普通窗体模式。具体实现过程如下: 1) 通过菜单File | New Application 创建一个新的工程。 2) 添加窗体F o r m 1 的O n C r e a t e 事件的处理过程如下: procedure TForm1.FormCreate(Sender: TO b j e c t ) ; b e g i n // 设置系统菜单 A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S E PA R ATOR,0,' '); A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S T R I N G , 2 0 0 , '前端显示( & A ) ' ) ; 3) 在文件U n i t 1 . p a s 的u s e s 语句中增加如下代码: u s e s Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, M e n u s ; . . . 4) 在T F o r m 1 的类型定义中,添加系统菜单中新建菜单项的O n C l i c k 事件的处理过程的声明: t y p e TForm1 = class(TForm) procedure FormCreate(Sender: TO b j e c t ) ; procedure SystemMenuCommand(var Msg:TWMMENUSELECT); message WM_SysCommand; p r i v a t e 5) 手工添加系统菜单中新建菜单项的O n C l i c k 事件的处理过程如下: procedure TForm1.SystemMenuCommand(var Msg:TWMMENUSELECT); b e g i n if Msg.IDItem = 200 then b e g i n if Form1.FormStyle = fsNormal then b e g i n // 将窗体设置为总在前端显示 Form1.FormStyle := fsStayOnTo p ; // 重新设置系统菜单 A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S E PA R ATOR,0,' '); A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S T R I N G , 2 0 0 , '前端显示( & A ) ' ) ; // 在新添加的菜单项前增加一个选中标志 M o d i f y M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , 2 0 0 , M F _ C H E C K E D , 2 0 0 , '前端显示( & A ) ' ) ; e n d e l s e b e g i n // 将窗体设置为普通模式 Form1.FormStyle := fsNormal; // 重新设置系统菜单 A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S E PA R ATOR,0,' '); A p p e n d M e n u ( G e t S y s t e m M e n u ( H a n d l e , F a l s e ) , M F _ S T R I N G , 2 0 0 , '前端显示(&A)'); e n d ; e n d ; i n h e r i t e d ; e n d ; |
温馨提示:喜欢本站的话,请收藏一下本站!