• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 利用MFC編程在工具條中增加組合框控件

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    武漢華中理工大學 劉衛忠 Windows UI技術一直是程序設計人員尤其是用戶接口程序設計人員最關心的技術。顯然新穎美觀的界面會給用戶留下深刻的印象。 Windows操作系統 的流行也在于其用戶界面的不斷創新與改進。Office 97、Visual Studio 97、Outlook、IE等每
    武漢華中理工大學 劉衛忠

      Windows UI技術一直是程序設計人員尤其是用戶接口程序設計人員最關心的技術。顯然新穎美觀的界面會給用戶留下深刻的印象。Windows操作系統的流行也在于其用戶界面的不斷創新與改進。Office 97、Visual Studio 97、Outlook、IE等每一個新的軟件的推出都能夠給人新的感覺。尤其是這些軟件工具條十分豐富美觀,如3D形式的工具條、飛行Tips,這些小技巧既富于吸引力,又方便了使用者。我們知道,Visual C++所提供的標準工具條中基本上只有一些簡單的諸如文檔打開、存儲以及一些編輯功能按鈕,而Visual C++自身的工具條功能十分豐富,尤其是工具條中內嵌的組合框控件十分方便。實際上利用MFC編程在工具條中增加一些有趣的控件還是比較容易的,下面我們就談談如何利用MFC編程在工具條中增加組合框控件。

      1 創建AppWizard工程文件設為toolbar,采用系統缺省設置。

      2 打開資源編輯器,選擇工具條,在工具條中增加一個按鈕,設置按鈕ID為ID_MY_COMBO_BOX。移動該按鈕以使按鈕處于適當的位置。

      3 從CToolBar派生出一個新類CMyToolBar,在CMyToolBar類中增加一個成員變量m_wndMyComboBox,代碼如下:

    class CMyToolBar : public CToolBar { public: CComboBox m_wndMyComboBox; };

      注意要將代碼放在工程文件mainframe.h中“#endif // _MSC_VER > 1000”語句之后,類CMainFrame定義之前。

      4 將工程文件mainframe.h中的CToolBar變量m_wndToolBar用CMyToolBar變量m_wndToolBar代替。同時增加函數CreateMyComboToolBar()聲明。代碼如下:

    protected: // control bar embedded members CStatusBar m_wndStatusBar; CMyToolBar m_wndToolBar; int CreateMyComboToolBar();

      5 在工程文件mainframe.cpp中的OnCreate()函數返回語句之前調用函數CreateMyToolBar();代碼如下所示:

    if(!CreateMyComboToolBar()) MessageBox("Create My Combo ToolBar Failure");

      6 以文本方式打開資源頭文件resource.h,增加一個控制ID如下,注意該控制的ID值不要與其它控制或資源的ID值重復:

    #define IDC_MY_COMBO 1111

      7 在工程文件mainframe.cpp中增加函數CreateMyToolBar();代碼如下:

    int MainFrame::CreateMyToolBar() { #define COMBO_BOX_WIDTH 80 //the width of the combo box //set up the ComboBox control as a select box //First get the index of the button's position in the toolbar int index = 0; CRecr rect; while(m_wndToolBar.GetItemID(index)! = ID_MY_COMBO_BOX) index++; //next convert that button to a seperator and get its position m_wndToolBar.SetButtonInfo(index, ID_MY_COMBO_BOX, TBBS_SEPARATOR, COMBO_BOX_WIDTH); m_wndToolBar.GetItemRect(index, &rect); //expand the rectangle to allow the combo box room to drop down rect.top+=2; rect.bottom += 200; // then .Create the combo box and show it if (!m_wndToolBar.m_ wndMyComboBox.Create( WS_CHILD|WS_VISIBLE | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS , rect, &m_wndToolBar, IDC_MY_COMBO)) { TRACE0("Failed to create combo-box\n"); return FALSE; } m_wndToolBar.m_wndMyComboBox.ShowWindow(SW_SHOW); //adding string to the combo box m_wndToolBar.m_wndMyComboBox.AddString("Fisrt Select"); m_wndToolBar.m_wndMyComboBox.AddString("Second Select"); m_wndToolBar.m_wndMyComboBox.AddString("Third Select"); m_wndToolBar.m_wndMyComboBox.AddString("Fourth Select"); m_wndToolBar.m_wndMyComboBox.AddString("Fifth Select"); m_wndToolBar.m_wndMyComboBox.SetCurSel(0); }

      編譯并運行該應用,就會發現工具條中多了一個組合框控件。見下圖(略)。

      從上面的例程可以看出,在工具條中增加新的控件,關鍵在于重寫主框架的OnCreate()函數。掌握了這一點,就可以在工具條中增加各種各樣的控件了,如增加無限輸入(Radio)控件、檢查框(Check)控件等。有興趣的讀者可以自己去嘗試一下加深理解。  

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>