C++ Builder定制系统菜单
敬业的IT人
互联网
佚名
2008-1-3 21:49:31
- ·C++ Builder VCL库函数简介
·在 C++ Builder中利用串行通信控件编程
·C++ Builder中消息处理过程及应用
·用C++ Builder3 制作记事本
·在C++ Builder中使用ActiveX控件显示Fl
·在C++ Builder中用Ole控制Excel表
·用C++ Builder获取应用程序图标
·用C++ Builder创建基于Internet的点对
·C++ Builder 3.0中各种资源的利用
·用C++ Builder创建上下文菜单扩展处
通常在应用程序的主窗体中,利用鼠标左键点击左上角的图标,会弹出一个菜单,称之为“系统菜单”。在窗体中并没有系统菜单对应的组件,所以有时我们需要定制系统菜单时就比较麻烦。具体可以能过下面的步骤实现:
在系统菜单上添加所需的菜单项。
为新添加的菜单项定义OnClick事件的处理过程。
下面的例程中,在系统菜单中添加了一个“前端显示(A)”菜单项,通过该菜单项,可以使窗体始终显示在最前端或为普通窗体模式。具体实现过程如下:
1)通过菜单File|New Application创建一个新的工程。
2)添加窗体Form1的OnClick事件的处理过程如下:
void _fastcall TForm1::FormCreate(Tobject *Sender)3)在文件Unit1.h头文件中增加如下语句:
{
//设置系统菜单
AppendMenu(GetSystemMenu(Handle,false),MF_SEPARATOR,0,"");
AppendMenu(GetSystemMenu(Handle,false),MF_STRING,200,"前端显示(&A)");
}
...4)在TForm1的类型定义中,添加系统菜单中新建菜单项的OnClick事件的处理过程的声明:
#include<Menus.hpp>
...
...5)手工添加系统菜单中新建菜单项的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);
};
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)");
{
}
- 最新文章
- 用C++ Builder检测Windows的启动模式[01-03]
- 用C++ Builder创建上下文菜单扩展处[01-03]
- 用C++BUILDER建立自己的WEB浏览器[01-03]
- 应用程序禁止Windows屏幕保护[01-03]
- 在C++ Builder中用Ole控制Excel表[01-03]
- 怎样用C++Builder存取Excel[01-03]
- 相关文章
