用C++ Builder來定製系統選單(轉)
用C++ Builder來定製系統選單(轉)[@more@]通常在應用程式的主窗體中,利用滑鼠左鍵點選左上角的圖示,會彈出一個選單,稱之為“系統選單”。在窗體中並沒有系統選單對應的元件,所以有時我們需要定製系統選單時就比較麻煩。具體可以能過下面的步驟實現:
在系統選單上新增所需的選單項。
為新新增的選單項定義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
...
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)");
{
}
在系統選單上新增所需的選單項。
為新新增的選單項定義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
...
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)");
{
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-957399/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 定製多系統啟動選單
- 在C++ Builder中定義事件 (轉)C++UI事件
- C++模板的定製二:定製C++類 (轉)C++
- C++模板的定製三:部分定製C++類 (轉)C++
- 用C++ Builder中的TServerSocket,TClientSocket來寫網路通訊程式 (轉)C++UIServerclient
- 澳創優選系統開發,澳創優選系統定製
- Automation In C++ Builder (轉)C++UI
- 用C++ Builder在桌面上畫圖 (轉)C++UI
- UITextView定製彈出選單UITextView
- C++模板的定製一:定製函式模板 (轉)C++函式
- 小米定製版電單車釋出:採用混動系統
- 用Delphi製作個性化的選單 (轉)
- 用C++ Builder檢測Windows的啟動模式(轉)C++UIWindows模式
- 在WPF中定製WebBrowser快捷選單Web
- 直播系統定製開發選擇開原始碼已成折中之選原始碼
- c++ builder中的ado使用 (轉)C++UI
- Borland C++ Builder的API後門 (轉)C++UIAPI
- C++ Builder 中對listview模擬複製某個單元格的內容C++UIView
- 用VB編寫簡單的程式來清空文件選單 (轉)
- 用CSS製作隱藏選單CSS
- 定製AIX作業系統的shell環境(轉)AI作業系統
- C++ Builder 初學問與答 (十一) (轉)C++UI
- C++ Builder 初學問與答 (十二) (轉)C++UI
- C++ Builder 初學問與答(三) (轉)C++UI
- C++ Builder 初學問與答(八) (轉)C++UI
- Centos系統設定GRUB開機選單的密碼CentOS密碼
- C++模板的定製五:對定製成員函式的補充 (轉)C++函式
- C/C++ Qt ToolBar 選單元件應用C++QT元件
- 用C++ Builder 實現類似ie位址列的ComboBox (轉)C++UI
- 利用純 CSS3 定製單選/多選框樣式CSSS3
- Win10系統右鍵選單新增“複製路徑”選項的方法Win10
- C++模板的定製四:定製成員函式和預設類參 (轉)C++函式
- 製作U盤啟動盤_用來安裝系統
- C++ Builder 高手進階 (五)用BCB編寫多執行緒應用程式 (轉)C++UI執行緒
- C++ BUILDER 訊息處理的深入探索 (轉)C++UI
- 在Unix系統下用shell製作通用介面(轉)
- 定製CRM系統需要多少錢
- 用idl2cpp.exe編譯idl 檔案[C++ Builder] (轉)編譯C++UI