📄 bcb_g12.htm
字号:
<html>
<head>
<title>自画菜单</title>
<meta http-equiv="目录类型" content="文本/html; 字符集=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0" height="285">
<tr>
<td height="35">
<div align="center" class="p14"><font color="#000000">自 画 菜 单</font></div>
</td>
</tr>
<tr valign="top">
<td>
<p><font color="#000000">注:源代码就有些乱,没有去修改。 <br>
</font> <br>
我们知道,C++Builder没有自画菜单,但可以调用API函数::SetMenuItemInfo()来改变菜单类型,达到自画菜单的目的。下面的例子演示了如何使用自画菜单。当鼠标位于菜单上拾,菜单项将凸出来。(黑体字为添加的代码)
<p>//头文件 <br>
//---------------------------------------------------------------------------
<br>
#ifndef TestMenuH <br>
#define TestMenuH <br>
//---------------------------------------------------------------------------
<br>
#include <Classes.hpp> <br>
#include <Controls.hpp> <br>
#include <StdCtrls.hpp> <br>
#include <Forms.hpp> <br>
#include <Menus.hpp>//---------------------------------------------------------------------------
<br>
class TForm1 : public TForm <br>
{ <br>
__published: // IDE-managed Components <br>
TMainMenu *MainMenu1; <br>
TMenuItem *aaa1; <br>
TMenuItem *aaaaaaaaa1; <br>
TMenuItem *ccc1; <br>
TMenuItem *ddd1; <br>
TMenuItem *eee1; <br>
TMenuItem *ddsds1; <br>
TMenuItem *fcdfsss1; <br>
TMenuItem *dddddddd1; <br>
void __fastcall FormCreate(TObject *Sender); <br>
private: // User declarations
<br>
void __fastcall Modify(TMenuItem *pMenuItem); <br>
protected : <br>
MESSAGE void __fastcall CNMeasureItem(TWMMeasureItem &Msg);//增加响应消息
<br>
MESSAGE void __fastcall CNDrawItem(TWMDrawItem &Msg); <br>
public: // User declarations
<br>
__fastcall TForm1(TComponent* Owner); <br>
BEGIN_MESSAGE_MAP//添加消息映射 <br>
VCL_MESSAGE_HANDLER(WM_MEASUREITEM, TWMMeasureItem, CNMeasureItem); <br>
VCL_MESSAGE_HANDLER( WM_DRAWITEM, TWMDrawItem, CNDrawItem); <br>
END_MESSAGE_MAP(TForm); <br>
}; <br>
//---------------------------------------------------------------------------
<br>
extern PACKAGE TForm1 *Form1; <br>
//---------------------------------------------------------------------------
<br>
#endif
<p>//实现文件 <br>
//---------------------------------------------------------------------------
<br>
#include <vcl.h> <br>
#pragma hdrstop
<p>
#include "TestMenu.h" <br>
//---------------------------------------------------------------------------
<br>
#pragma package(smart_init) <br>
#pragma resource "*.dfm" <br>
TForm1 *Form1; <br>
//---------------------------------------------------------------------------
<br>
__fastcall TForm1::TForm1(TComponent* Owner) <br>
: TForm(Owner) <br>
{ <br>
} <br>
//---------------------------------------------------------------------------
<p>
void __fastcall TForm1::Modify(TMenuItem *pMenuItem) <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -