在對話方塊中插入 工具欄

2021-05-23 15:20:03 字數 1749 閱讀 5604

一、

技術要點分析

所有的windows

控制項(包括工具欄、編輯框等)都派生自

cwnd

類,這就意味著,我們可以用視窗類的

create

()函式把它們「建立

」並顯示到另乙個視窗(例如對話方塊)上。把工具欄加入到對話方塊中正是使用了這樣的一種方法。

通常,我們使用

c*******ctrl

類(派生自

cwnd

類)來建立並管理工具欄控制項。使用這個類建立一條工具欄的一般步驟如下:

1.派生乙個

c*******ctrl

的物件;

2.呼叫

c*******ctrl::create

函式建立工具欄物件;

3.呼叫

c*******ctrl::addbitmap()

和c*******ctrl::addstring()

為工具欄物件加入點陣圖和提示資訊;

4.派生乙個

tbutton

陣列物件進行工具欄中各按鈕的具體設定;

5.修改主視窗的

onnotify

()函式,以顯示工具欄上的提示資訊。

以上步驟在下面的範例**中會有具體體現。

二、

範例程式的建立與主要**分析

利用visual c++

的嚮導生成乙個基於對話方塊的程式,命名為

*******indial

。修改主對話方塊樣式如圖

1。繪出一條工具欄的點陣圖並建立一選單,設定幾個子選單項,然後建立一組工具欄的提示資訊串(

string table

),一旦滑鼠在工具欄某項上停留,就會顯示提示資訊。下面給出程式中的主要**。

在主對話方塊

c*******indialdlg

的類定義中有如下的變數說明:

c*******ctrl *******;

int buttoncount;

int buttonbitmap;

bool doflag;

tbbutton m_button[5];

//設定工具欄上具體資訊的變數陣列

//主對話方塊的初始化函式

bool c*******indialdlg::oninitdialog()

//當滑鼠在工具欄上停留時,呼叫這個函式來顯示提示資訊

bool c*******indialdlg::onnotify(wparam wparam, lparam lparam, resultpresult)

strcpy(tt->sztext,(lpcstr)tip);

//顯示提示資訊

break;

}return cdialog::onnotify(wparam, lparam, presult);}//

該演示程式的工具欄能由使用者定製,隨時增加或刪除工具欄中的某一項

break;}}

void c*******indialdlg::onplay() //

響應函式舉例

以上程式在中/英文

windows 98

、vc++ 6.0

環境下編譯通過,執行正常。圖

2為執行中的有工具欄的對話方塊程式。

圖2   

在對話方塊中加入工具欄

工具欄 是一種非常方便的控制項,能大大增加使用者操作的效率,但是基於對話方塊的程式,卻不能像使用編輯框 edit box 和列表框 list box 一樣,方便地增加工具欄控制項。本文將介紹一種在對話方塊中加入工具欄的方法。一 技術要點分析 所有的windows控制項 包括工具欄 編輯框等 都派生自...

在對話方塊中增加選單欄,工具欄,狀態列

1.加選單 在對話方塊的property對話方塊中style中選中system menu 再在property對話方塊中generic中加入選單 2.加工具欄 1。要增加乙個資源idr 1 2.記得加乙個成員變數 protected c m wnd 3.bool cmain oninitdialog...

vc對話方塊中新增工具欄

轉http www.programfan.com blog article.asp?id 27914 1 新增工具欄資源id為idr 2 在對話方塊的類定義中加 c m 3 在oninitdialog中或其它合適的訊息響應中加如下 函式可檢視msdn m create this 建立工具欄 m lo...