網站建設| 數據庫類| 圖形圖象| 程序設計| 現代辦公| 操作系統| 考試認證| 網絡技術| 軟件工程| 電腦相關| 文學作品
網站開發| 網頁制作| 操作系統| 圖象圖形| 考試認證| 數據庫類| 程序設計| 硬件技術| 現代辦公| 網絡技術| 笑話頻道
 
您的位置: 電腦書庫首頁-> 電腦文摘-> 程序設計-> C++Builder-> C++Builder定制系統菜單

C++Builder定制系統菜單
作者:佚名 來源:InterNet 加入時間:2005-1-28
相關文章
  • C++Builder中集合的處理
  • 用C++Builder 建立數據庫VCL使用經驗
  • 用C++Builder開發動畫DLL
  • 相關書籍:
  • C++Builder6.0界面實例開發
  • c++builder6編程實例精講
  • 學習C++Builder的資料真的很少,下面是從一本書中學到的,不知對大家有沒有幫助,拿出來給大家看看:

      通常在應用程序的主窗體中,利用鼠標左鍵點擊左上角的圖標,會彈出一個菜單,稱之為“系統菜單”。
    在窗體中并沒有系統菜單對應的組件,所以有時我們需要定制系統菜單時就比較麻煩。具體可以能過下面的步驟實現:

      .在系統菜單上添加所需的菜單項。

    .為新添加的菜單項定義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)");
    {
    }

    [文章錄入員:nancy]

    相關文章
  • C++Builder中集合的處理
  • 用C++Builder 建立數據庫VCL使用經驗
  • 用C++Builder開發動畫DLL
  • 相關書籍:
  • C++Builder6.0界面實例開發
  • c++builder6編程實例精講
  • 本站推薦內容

    近期主機類熱搜關鍵詞:
    美國服務器 美國服務器租用 海外服務器租用 國外服務器租用

    C++Builder
    C/C++/VC
    C++Builder
    Basic/VB類
    Delphi/Pascal
    Java編程
    FORTRAN
    其它
    電腦教程閱讀排行
    ·模擬鍵盤按鍵 自動輸入文字
    ·在C++Builer中多線程的實...
    ·C++ Builder構建算二十...
    ·C++ Builder中消息處理...
    ·用C++ Builder實現桌布...
    ·用C++ Builder實現網絡...
    ·用C++ Builder開發多層...
    ·用C++Builder 建立數據...
    ·用BCB開發有身份認證功能的Em...
    ·個性凸現的動畫 特技效果
    福建22选5号码走势图