工具栏上按钮的绘制

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Windows UI技术一直是用户接口程序设计人员最关心的技术。Visual C++所提供的标准工具条中基本上只有一些简单的功能按钮,而Visual C++自身的工具条功能十分丰富,尤其是工具条中内嵌的控件十分方便。下面我就谈谈如何利用MFC编程在工具条中增加组合框控件。

目的:在工具栏上内嵌编辑框

思想:(1)获得工具栏上按钮的ID;(2)获得按钮的尺寸;(3)调整按钮尺寸大小;(4)绘制按钮。

步骤:(1)在工具栏资源中添加一按钮,设置其按钮ID IDC_EDIT;

(2)从CToolBar继承CMyToolBar,并定义一CEdit对象m_wndMyEdit;

(3)修改CMainFrame中修改CToolBar m_wndToolBar为 CMyToolBa rm_wndToolBar;

(4)在CMainFrame中添加 BOOL CreateMyEditBar()函数,并在此绘制;

(5)在CMainFrame::OnCreate中添加CreateMyEditBar();

源代码如下:

class CMyToolBar : public CToolBar

{

public:

CEdit m_wndMyEdit; //并定义一CEdit对象m_wndMyEdit

};

class CMainFrame : public CFrameWnd

{

..................省去..........................

public:

CMyToolBar m_wndToolBar; //中修改CToolBar m_wndToolBar为 CMyToolBa rm_wndToolBar

protected:

BOOL CreateMyEditBar();

..................省去..................

};

BOOL CMainFrame::CreateMyEditBar()

{

#define EDIT_WIDTH 80 file://定义编辑框高度

int index=0;

CRect rect;

file://以下获得按钮索引

while(m_wndToolBar.GetItemID(index)!=IDC_MY_EDIT)

index++;

file://以下设置工具栏按钮风格,并调整按钮位置

m_wndToolBar.SetButtonInfo(index,IDC_MY_EDIT,TBBS_SEPARATOR,EDIT_WIDTH);

m_wndToolBar.GetItemRect(index,&rect);

rect.top+=2;

rect.bottom+=200;

//创建编辑框并显示

if(!m_wndToolBar.m_wndMyEdit.Create(WS_CHILD|WS_VISIBLE,

rect, &m_wndToolBar,IDC_MY_EDIT))

{

TRACE0("Failed to create combo-box\n");

return FALSE;

}

m_wndToolBar.m_wndMyEdit.ShowWindow(SW_SHOW);

return TRUE;

}

nt CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

..................省去........................

if(!CreateMyEditBar())

{

TRACE0("Failed to create status bar\n");

return -1;

}

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航