VC界面编程入门(二)

本文介绍在VC中如何实现窗口的退出、设置及工具条的创建与管理。包括DestroyWindow、EndDialog等退出函数的使用,窗口的文本、大小、图标设置,以及工具条的创建、按钮响应和替换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一节,我们用VC已经搭建了程序的框架,下面介绍一下窗口常用的函数和部分设置以及工具条的创建。

1. 如何退出程序。

DestroyWindow():在子窗口退出会报故障并退出程序。
EndDialog(IDOK)/EndDialog(IDCANCEL):内置的响应对话框的确定/取消的函数。
exit(0):故障退出函数。

2.  窗口的部分设置。

在OnInitDialog函数添加工具条初始化代码。主窗口已启用此函数,子窗口需要类模板(ctrl+w或View →ClassWizard →CxxDlg的消息里面选择WM_INITDIALOG,再添加函数)
设置窗口顶部文本SetWindowText。
窗口大小、风格及位置SetWindowPos。
窗口图标AfxGetApp()->LoadIcon。

3. 工具条。

(1)Insert→Resource(或Ctrl+R)
选择toolbar
点击new按钮
添加按钮,逐个修改按钮图案,设置按钮ID。


(2)初始化工具条

在对话框类的头文件定义一个工具条CToolBar m_tool;//假定工具条ID为IDR_TOOLBAR1
在初始化函数中
    m_tool.Create(this);//创建工具条
m_tool.LoadToolBar(IDR_TOOLBAR1);//载入资源
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示工具条

(3)工具条按钮的响应

工具条按钮的ID
    在资源窗口双击工具条按钮,弹出窗口显示了按钮的ID,可以修改成有实际意义的名称,以免混淆。

工具条按钮的响应函数
    进入类模板(ctrl+w或View →ClassWizard),弹出窗口提示为工具条建立新的类。

(4)建立工具条的类(不建不影响使用)

(5)择工具条按钮消息

6)工具条按钮的响应函数

选择消息后,选择增加函数后再选择编辑函数代码,如某工具条按钮ID_BUTTON_EXIT用于退出窗口。
    void CMy1Dlg::OnButtonExit() 
   {
// TODO: Add your command handler code here
EndDialog(IDOK);
   }

(7)常规工具条的缺陷

使用VC自带的资源模板建立的常规工具条只支持16色(如Word的工具条),即使载入了真彩图标也会转为16色显示。

4. 真彩工具条的使用

将工具条所需的真彩图标加入VC资源
使用ImageList接收真彩图标
创建工具条并载入资源窗口生成的工具条
将ImageList设置给工具条,替代原有图标

(1)真彩工具条的实现a

加入成员变量,在对话框的头文件直接加入,或者在类窗口右击窗口类添加
CToolBar m_ToolBar;
CImageList m_ImageList;
在OnInitDialog函数初始化工具条
    m_ToolBar.Create(this);
m_ToolBar.LoadToolBar(IDR_TOOLBAR1);

(2)初始化ImageList

//创建真彩图集,ILC_COLOR32:32位色
m_ImageList.Create(32,32,ILC_COLOR32,6,4);
//载入图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
……
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
//设置为工具条图集
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);

(3)真彩工具条的实现b

设置工具条按钮文本
m_ToolBar.SetButtonText(0,"系统图");
设置工具条按钮大小
CSize TextButtonSize,ImageSize;
ImageSize.cx=32;
ImageSize.cy=32;
m_ToolBar.SetSizes(TextButtonSize,ImageSize);
显示工具条
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

(4)载入不同的工具条

由多个对话框构成的界面中,工具条按钮在每个对话框都是可见的。因为每个对话框都可能载入这个工具条。
同一个对话框可能需要在不同的条件下分别载入不同的工具条。

(5)如何替换工具条

定义
CToolBar m_ToolBar;
CToolBar m_ToolBar2;
备用工具条初始化
m_ToolBar2.Create(this);
m_ToolBar2.LoadToolBar(IDR_TOOLBAR_WAVE);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_ToolBar2.ShowWindow(SW_HIDE);//隐藏备用工具条

替换工具条
m_ToolBar.ShowWindow(SW_HIDE);
m_ToolBar2.ShowWindow(SW_SHOW);
隐藏工具条按钮
m_ToolBar.GetToolBarCtrl().HideButton(ID_BUTTON_TEST,bShow);
//bShow=FALSE, 隐藏按钮;bShow=TRUE,显示按钮

好了,工具条我们算是入门咯!!!

写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VCC++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值