MDI 框架的客户区被另一个窗口的框架所覆盖,为了改变客户区的背景色,需要重画这个
客户窗口。为了做到这点,要处理消息 WM_ERASEBKND 产生一个新类,如从 CWnd 继
承一个新类,称为 CMDIClient,具体可见下面的代码片断。
实例 2…5 :改变 MDI 窗口框架的颜色。源代码在光盘中“02实例 2…5TestMDI ”目录下。
#include 〃MDIClient。h〃
class CMainFrame : public CMDIFrameWnd
{
。。。
protected:
CMDIClient m_wndMDIClient;
}
在 CMainFrame 中重载 CMDIFrameWnd::OnCreateClient
·31 ·
…………………………………………………………Page 41……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs; CCreateContext* pContext)
{
if ( CMDIFrameWnd::OnCreateClient(lpcs; pContext) )
{
m_wndMDIClient。SubclassWindow(m_hWndMDIClient);
return TRUE;
}
else
return FALSE;
}
//然后就可以加入对消息 WM_ERASEBKGND 的处理函数。
BOOL CMDIClient::OnEraseBkgnd(CDC* pDC)
{
CBrush brush(RGB(200;100;0));
CRect rect;
GetClientRect(&rect);
pDC…》FillRect(rect;&brush);
return TRUE;
}
程序运行结果如图 2…23 所示,其中框架颜色变成了橘红色,有关该技巧的源代码请参见
附带光盘。
图 2…23 改变 MDI 窗口的框架颜色
·32 ·
…………………………………………………………Page 42……………………………………………………………
第 2 章 应用程序基本框架
2。5。3 工具栏
工具栏由一系列的按钮和间隔(Seperator )组成。一般功能相关的按钮组成一组,各组
MFC 中使
按钮之间以一定的间隔分开 。通常,工具栏作为主框架窗口中的一个子窗口存在。
用 CToolBar 类来封装工具条控件的各种操作,可以在资源编辑器的 ToolBar 上单击鼠标右键,
选择 Insert ToolBar 项,选中一个工具栏后,鼠标左键双击该工具栏就可以编辑,如图 2…24
所示。
图 2…24 添加一个新的 ToolBar 资源
工具栏上所有按钮的图形在资源中实际上是以一个位图文件存在的。在利用 AppWizard
创建的工程中,自动创建的工具栏位图文件名为 ResToolBar。bmp 。在位图中每个按钮占用一
个宽为 16 像素、高为 15 像素的区域。可以用图形工具条及颜色盒绘制按钮的外表,它的属
性包括 ID、长、宽及鼠标指向它时的说明。一般在 CMainFrame 中定义 CToolBar,其实现在
CMainFrame 的 OnCreate 函数中完成,在该函数中用于创建工具栏的具体特征。
在工具栏中嵌入编辑框等控件,可以通过下面的方法:
o 定义一个编辑控件对象,不能是局部变量,否则会被释放掉;
o 调用 Create,惟一注意的是要在工具条中调用。
CRect rect;
m_wndToolBar。GetItemRect(1;&rect);
edit。Create(WS_CHILD|WS_VISIBLE;rect;&m_wndToolBar;ID_EDIT);
实例 2…6 :添加工具栏程序。源代码在光盘中“02实例 2…6MyToolBar ”目录下。
下面是一个 MyToolbar 的示例程序,集中演示了 ToolBar 在框架窗口中的应用。新建一
个空的 Win32 Application 工程,然后加入下面的 MyToolBar。cpp 源文件,按照前面给出的步
骤加入新的工具栏资源,这里工具栏的 ID 设置为 IDR_MYTOOL1 ,其属性如图 2…25 所示。
·33 ·
…………………………………………………………Page 43……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
图 2…25 工具栏属性对话框
#include
#include
#include 〃resource。h〃
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMyWnd:public CFrameWnd
{
public:
~CMyWnd();
CToolBar MyToolBar;
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnButton10();
afx_msg void OnButton11();
afx_msg void OnButton12();
afx_msg void OnButton13();
DECLARE_MESSAGE_MAP()
};
CMyApp MyApp;
BEGIN_MESSAGE_MAP(CMyWnd;CFrameWnd)
ON_WM_CREATE()
ON_MAND(ID_BUTTON40010;OnButton10)
ON_MAND(ID_BUTTON40011;OnButton11)
ON_MAND(ID_BUTTON40012;OnButton12)
ON_MAND(ID_BUTTON40013;OnButton13)
END_MESSAGE_MAP()
BOOL CMyApp::InitInstance()
{
CMyWnd* pCWindow=new CMyWnd;
pCWindow…》LoadFrame(IDR_MYTOOLBAR1);//创建主窗口,加载菜单
m_pMainWnd = pCWindow;
·34 ·
…………………………………………………………Page 44……………………………………………………………
第 2 章 应用程序基本框架
pCWindow…》ShowWindow(m_nCmdShow);
pCWindow…》UpdateWindow();
return TRUE;
}
int CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
小说推荐
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 其他
- 最新章:第31章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言设计
- 作者:谭浩强1 C 语言概述1.1 C语言的发展过程1.2 当代最优秀的程序设计语言1.3 C语言版本1.4 C语言的特点1.5 面向对象的程序设计语言1.6 C和C+1.7 简单的C程序介绍1.8 输入和输出函数1.9 C源程序的结构特点1.10书写程序时应遵循的规则1.11C语言的字符集1.12
- 文学名著
- 最新章:第45章
- 设计成婚:不入豪门
- 作者:海未央《设计成婚2:名门新娘》作品介绍《名门新娘》介绍:她是骆家收养的孤女,性格因为受他的影响,变得有些古灵精怪,也懂得是非之分!他说他的一切只为他而努力,可是为什么要拒绝自己呢?什么?没有满十八岁?那今天生日,够十八岁了吧?什么,还太小?太过分了,这不是耍着自己玩吗?嘿嘿,有个邪恶的老师,那
- 魔法玄幻
- 最新章:第196章
- 玄学,从入门到放弃
- 《玄学,从入门到放弃》作者:李传言文案:周诣一手拿着卜卦,一手拿着《演员的自我修养,叹息良久。他本是百年前观天占星的玄术师,谁知却一朝重生现代。他只想平淡地生活下去,可天不遂人愿,他注定将在这末法时代掀起波澜!成就一代影帝!谢千仇沉默地看着他…大师,你卦和书都拿倒了#玄学,从入门到放弃,入土,删库跑
- 魔法玄幻
- 最新章:第86章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- 要你言听计从
- 作者:决明第一章哈士奇,没有护卫看家的本领,对主人、客人甚至是闯空门的恶人都一样友善,咬着皮球跟小偷一块玩你丢我捡也不用太惊讶,时常被人认为忠诚度不足。贺世祺背靠在冰冷玻璃落地窗前,一整间屋子都是伸手不见五指的黑暗,也好,反正他现在什么也不需要看到,只要耳朵还有听觉就好,顺便听听贴在耳边的手机里还要
- 都市言情
- 最新章:第28章