利用MFC程式設計在工具條中增加組合框控制元件 (轉)
---- UI技術一直是設計人員尤其是介面程式設計人員最關心的技術。顯然新穎美觀的介面會給使用者留下深刻的印象。Windows操作的流行也在於其使用者介面的不斷創新與改進。 97、 97、、IE等每一個新的的推出都能夠給人新的感覺。尤其是這些軟體工具條十分豐富美觀,如3D形式的工具條、飛行,這些小技巧既富於吸引力,又方便了使用者。我們知道,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 CStatar m_wndStatusBar; CMyToolBar m_wndToolBar; int CreateMyComboToolBar();
---- 5 在工程檔案mainframe.cpp中的OnCreate()函式返回語句之前函式CreateMyToolBar();程式碼如下所示:
if(!CreateMyComboToolBar()) MessageBox("Create My Combo ToolBar Failure");
---- 6 以文字方式開啟資源標頭檔案re.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 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-boxn"); 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)控制元件等。有興趣的讀者可以自己去嘗試一下加深理解。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988894/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MFC---ActiveX控制元件程式設計基礎控制元件程式設計
- MFC在狀態列中使用進度條控制元件控制元件
- MFC下CSocket程式設計詳解(轉)程式設計
- MFC程式設計(五)C程式程式設計
- MFC程式設計(四)C程式程式設計
- MFC程式設計(二)C程式程式設計
- MFC程式設計(一)C程式程式設計
- MFC程式設計(六)C程式程式設計
- MFC程式設計(三)C程式程式設計
- 在SDK程式中使用MFC中的輔助類 (轉)
- C#介面程式設計8——日期時間控制元件、進度條、數字輸入框C#程式設計控制元件
- MFC控制元件程式設計:列表控制元件、樹控制元件、屬性頁對話方塊 (未完)控制元件程式設計
- 函數語言程式設計:Flutter&Dart中的組合函數程式設計FlutterDart
- No MFC 程式設計01 - 最精簡的 win32 程式 (轉)程式設計Win32
- VS2019/MFC程式設計入門之(如何利用MFC嚮導生成單文件應用程式框架)C程式程式設計框架
- 在JBuilder5中增加註釋與反註釋工具 (轉)UI
- 在 Oracle JDeveloper 中進行 Ajax 程式設計(轉)OracleDeveloper程式設計
- Vector在Java程式設計中的應用 (轉)Java程式設計
- MFC下CSocket程式設計詳解程式設計
- 【設計模式】組合模式設計模式
- 設計模式《組合模式》設計模式
- 設計模式-組合模式設計模式
- 設計模式:組合模式設計模式
- Linux環境組合語言程式設計初步——使用gdb除錯程式(轉)Linux組合語言程式設計除錯
- mfc程式流程 (轉)C程式
- python物件導向程式設計之組合Python物件程式設計
- 在Kotlin中如何利用協程進行非同步程式設計Kotlin非同步程式設計
- Linux環境組合語言程式設計初步——AT&T語法(轉)Linux組合語言程式設計
- 往IE中嵌入工具條 (轉)
- VC++ MFC程式設計版本資訊控制C++C程式程式設計
- MFC中ListControl控制元件的使用控制元件
- js設計模式–組合模式JS設計模式
- js設計模式--組合模式JS設計模式
- 設計模式系列 – 組合模式設計模式
- javascript設計模式組合模式JavaScript設計模式
- 設計模式(十三):組合模式設計模式
- 理解函數語言程式設計中的函式組合--Monoids(二)函數程式設計函式Mono
- 《JAVA併發程式設計實戰》物件的組合Java程式設計物件