当前位置:天才代写 > tutorial > C语言/C++ 教程 > C++Builder定制系统菜单

C++Builder定制系统菜单

2017-11-06 08:00 星期一 所属: C语言/C++ 教程 浏览:428

凡是在应用措施的主窗体中,操作鼠标左键点击左上角的图标,会弹出一个菜单,称之为“系统菜单”。

在窗体中并没有系统菜单对应的组件,所以有时我们需要定制系统菜单时就较量贫苦。详细可以能过下面的步调实现:

.在系统菜单上添加所需的菜单项。

.为新添加的菜单项界说OnClick事件的处理惩罚进程。

下面的例程中,在系统菜单中添加了一个“前端显示(A)”菜单项,通过该菜单项,可以使窗体始终显示在最前端或为普通窗体模式。详细实现进程如下:

1)通过菜单File|New Application建设一个新的工程。

2)添加窗体Form1的OnClick事件的处理惩罚进程如下:

void _fastcall TForm1::FormCreate(Tobject *Sender)
{
  //配置系统菜单
  AppendMenu(GetSystemMenu(Handle,false),MF_SEPARATOR,0,"");
  AppendMenu(GetSystemMenu(Handle,false),MF_STRING,200,"前端显示(&A)");
}

3)在文件Unit1.h头文件中增加如下语句:

...
#include<Menus.hpp>
...

4)在TForm1的范例界说中,添加系统菜单中新建菜单项的OnClick事件的处理惩罚进程的声明:

...
public:    //User declarations
   __fastcall TForm1(TComponent *Owner);
   MESSAGE void __fastcall SystemMenuCommand(TWMMenuSelect &Msg);
BEGIN_MESSAGE_MAP
   MESSAGE_HANDLER(WM_SYSCOMMAND,TWMMenuSelect,SysteMenuCommand);
END_MESSAGE_MAP(TForm);
};

5)手工添加系统菜单中新建菜单项的OnClick事件的处理惩罚进程如下:

void __fastcall TForm1::SystemMenuCommand(TWMMenuSelect &Msg)
{
  TForm::Dispatch(&Msg);
  if(Msg.IDItem==200)
  {
   if(Form1->FormStyle==fsNormal)
   {
    //将窗体配置为总在前端显示
    Form1->FormStyle=fsStayOnTop;
    //从头配置系统菜单
    AppendMenu(GetSystemMenu(Handle,false),MF_SEPARATOR,0,"");
    AppendMenu(GetSystemMenu(Handle,false),MF_STRING,200,"前端显示(&A)");
    //在新添加的菜单项前增加一个选中符号
    ModifyMenu(GetSystemMenu(Handle,false),200,MF_CHECKED,200,"前端显示(&A)");
   }
  }
  else
  {
   //将窗体配置为普通模式
   Form1->FormStyle=fsNormal;
   从头配置系统菜单
   AppendMenu(GetSystemMenu(Handle,false),MF_SEPARATOR,0,"");
   AppendMenu(GetSystemMenu(Handle,false),MF_STRING,200,"前端显示(&A)");
  {
}

 

    关键字:

天才代写-代写联系方式