All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
HTML网页与FLASH之间的传值_[Html教程]
用数据库生成不重复的流水号_[SQL,Server教程]
PHP技巧:得到一个字符串的最后一个字符_[PHP教程]
PHP开发技巧之用递归替换数组中的内容_php资料_编程技术
C#教程:客户机调用Web服务应用实例
ASP.NET2.0缓存(Cache)技术_[Asp.Net教程]
ASP.NET开发系列之在用户控件中添加事件_[Asp.Net教程]
总结PHP网站编程8个初级技巧_[PHP教程]
mscorwks.dll在.Net中的地位以及在.Net代码保护方面的应用_[Asp.Net教程]
microsoft sql server (mssql)数据导入导出详解 (多图文档)_[SQL Server教程]
Reading number is top 10 pictures
Absolutely shocked. National geographic 50 animal photographys9
英雄联盟超神十连杀截图
胸部遭到偷窥的女人们
The real super beauty15
Group of female porn in 《westwards》, uninhibited woman threatened to not the bottom line1
中国女孩大胆自拍,显露完美身材3
迷人的靓女
China's first snake village1
Exquisite decoration is not paying too much2
Kim jong il's mistress, national beauty JinYuJi actor2
Download software ranking
The Bermuda triangle2
Macromedia Dreamweaver 8
仙剑奇侠传98硬盘WINXP版
天龙八部十二宫服务端
WebService在.NET中的实战应用教学视频 → 第5集
打鸟视频
The Bermuda triangle3
Tram sex maniac 2 (H) rar bag12
Tram sex maniac 2 (H) rar bag19
Ashlynn Video5
qq published in(发表于) 2014/7/9 22:41:01 Edit(编辑)
Visual C++向对话框类中添加工具栏

Visual C++向对话框类中添加工具栏

Visual C++向对话框类中添加工具栏

向对话框类中添加工具栏

在文档/视图结构中,添加工具栏是非常方便的,但在基于对话框的应用程序中,就稍稍复杂一点了。通常情况下,向对话框中添加工具栏有两种方法。

第一种方法:

特点:

① 使用CToolBar类,可以装载工具栏资源。

② 代码编写简单方便。

缺点:

只支持16位图标。

步骤:

(1)通过AppWizard新建一个基于对话框的项目Main。

(2)在对话框资源中单击鼠标右键,在弹出的快捷菜单上选择“Properties”菜单项,打开“Dialog Properties”对话框。

(3)在“Dialog Properties”对话框中将“Caption”文本框的内容改为“在对话框中添加工具栏(16位图标)”。

(4)通过工具栏设计器创建一个工具栏资源ID_TOOLBAR1,并画好各工具按钮,如图1所示。



图1 工具栏资源设计结果

(5)在对话框类CMain中添加一个成员变量CToolBar m_ToolBar。

(6)在对话框的OnInitDialog()成员函数中添入以下代码:

BOOL CDMain::OnInitDialog()

{

CDialog::OnInitDialog();

if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_ToolBar.LoadToolBar(IDR_TOOLBAR))

{

TRACE0("Failed to create toolbarn");

return -1; // fail to create

}

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

m_ToolBar.ShowWindow(SW_SHOW);

// http://www.isstudy.com

return true;

}

(7)按Ctrl+F5运行程序,结果如图2所示。

新添加的工具栏(CToolBar类对象)



图2 使用CToolBar向对话框中添加工具栏

第二种方法:

特点:

① 使用CToolBarCtrl类,必须与CImageList类联合使用。

② 可以支持真彩色(32位)图标。

缺点:

代码编写较为复杂。

步骤:

(1)通过AppWizard新建一个基于对话框的项目Main。

(2)在对话框资源中单击鼠标右键,在弹出的快捷菜单上选择“Properties”菜单项,打开Dialog Properties对话框。

(3)在“Dialog Properties”对话框中将“Caption”文本框的内容改为“在对话框中添加工具栏(32位图标)”。

(4)在对话框类CMyDlg中添加两个成员变量CToolBarCtrl m_ToolBar和CImageList m_ImageList。

(5)添加若干需要在工具栏上显示的图标资源。

(6)在对话框的OnInitDialog()成员函数中添入以下代码:

BOOL CDMain::OnInitDialog()

{

CDialog::OnInitDialog();

const int ARRAY_MAX=5;

//建立ImageList对象及ToolBar对象

m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0); //创建一个图像列表框

m_ToolBar.EnableAutomation();

m_ToolBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_TOOLBAR);

//向ImageList对象中添加资源图标

UINT Resource[ARRAY_MAX]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON5};

int i;

TBBUTTON button[ARRAY_MAX];

for(i=0;i< ARRAY_MAX;i++)

{

//向图像列表框中添加图片

m_ImageList.Add(::LoadIcon(::AfxGetResourceHandle(),

MAKEINTRESOURCE(Resource[i])));

}

m_ToolBar.SetImageList(&m_ImageList);

for(i=0;i< ARRAY_MAX;i++) //设置每个按钮属性

{

button[i].dwData=0;

button[i].fsState=TBSTATE_ENABLED;

button[i].fsStyle=TBSTYLE_BUTTON ;

button[i].iBitmap=i;

}

m_ToolBar.AddButtons(ARRAY_MAX,button);

TBBUTTON Wrap; //创建一个分隔条

Wrap.dwData=0;

Wrap.fsState=TBSTATE_ENABLED;

Wrap.fsStyle=TBSTYLE_SEP;

m_ToolBar.InsertButton(3,&Wrap);

m_ToolBar.AutoSize();

m_ToolBar.SetStyle(TBSTYLE_FLAT|CCS_TOP);

return true;

}

运行结果如图3所示。



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.