`
zzysh
  • 浏览: 54074 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

VC++ 深入详解 学习笔记(5) -- 修改窗口样式续

    博客分类:
  • c++
阅读更多

之前说过, 修改窗口大小,窗口样式的方法。 这里说明一下修改窗口的图标,光标和背景的方法。

修改窗口大小,样式是在创建窗口的时候进行的,而修改图标,光标和背景是在设计窗口类的时候进行的。 由于MFC封装了相关操作。 所以我们需要将自己写的窗口类应用到MFC的框架中。

 

1. 通过窗口类进行修改

在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)方法中添加窗口类,如:

	WNDCLASS wndcls;
	wndcls.cbClsExtra = 0;
	wndcls.cbWndExtra = 0;
	wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
	wndcls.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndcls.hInstance = AfxGetInstanceHandle();
	wndcls.lpfnWndProc = ::DefWindowProc;
	wndcls.lpszClassName = L"eltonCls";
	wndcls.lpszMenuName = NULL;
	wndcls.style = CS_HREDRAW | CS_VREDRAW; // 窗口类的类型,而不是窗口类型

然后再进行注册

RegisterClass(&wndcls);

 最后在CREATESTRUCT中指定窗口类

cs.lpszClass = L"eltonCls";

 由于View是在Frame之上的。 所以上面改的背景色,光标会被view覆盖在下面。 所以同样需要修改View的PreCreateWindow函数,在PreCreateWindow中添加:

cs.lpszClass = L"eltonCls";

 这样就可以修改了窗口类的样式。

 

2. 通过MFC的AfxRegisterWndClass全局函数修改

之前为了修改一下图标之类的,构造一个窗口类有点太麻烦, MFC为我们提供了一个全局函数AfxRegisterWndClass

LPCTSTR AFXAPI AfxRegisterWndClass(
   UINT nClassStyle,
   HCURSOR hCursor = 0,
   HBRUSH hbrBackground = 0,
   HICON hIcon = 0 
); 

 这样,利用这个函数,在CMainFrame::PreCreateWindow中的输入:

cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW, 0, 0, LoadIcon
		(NULL,IDI_APPLICATION)); 

 在View的PreCreateWindow同样需要输入:

cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW, LoadCursor(NULL, IDC_CROSS),
		(HBRUSH)GetStockObject(BLACK_BRUSH), LoadIcon(NULL, IDI_APPLICATION));

 以确保在Frame上面的View也设置了相关背景和光标。

 

 

 

 

 

分享到:
评论

相关推荐

    VC++深入详解pdf版(第三卷)

    上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    VC++深入详解学习笔记

    "VC++深入详解学习笔记" 本笔记详细介绍了VC++语言的开发特点,有助新手快速掌握VC++编程技巧。笔记涵盖了从Windows程序内部运行机制到MFC程序框架、消息映射机制、DC获取、菜单编程、对话框编程、图形绘制、文件...

    VC++深入详解-完整带详细书签

    VC++深入详解完整版,并带完整详细的书签,包括每章,每节的书签索引。

    VC++深入详解代码3-4.rar

    《VC++深入详解》是一本专注于Microsoft Visual C++编程技术的专著,涵盖了从基础知识到高级特性的全面解析。在“VC++深入详解代码3-4”这个压缩包中,包含的是书中第三章和第四章的示例代码,旨在帮助读者通过实践...

    孙鑫 VC++ 深入详解书中源码

    《孙鑫 VC++ 深入详解》是一本深受程序员喜爱的VC++技术书籍,作者孙鑫以其深入浅出的讲解方式,详细剖析了VC++的底层机制和高级特性。书中的源码是理解理论知识的关键实践部分,通过分析和运行这些代码,读者可以更...

    VC++深入详解 PDF教程及示例代码.rar

    《VC++深入详解》是电子工业出版社出版的书籍,作者是孙鑫、余安萍。本书主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解...

    VC++深入详解(完整版)+所有源代码集

    《VC++深入详解(完整版)+所有源代码集》是一份全面探讨Microsoft Visual C++(简称VC++)编程技术的资源包,包含了书籍的详细内容和配套的源代码。这份资料旨在帮助开发者深入理解VC++的各个方面,从基础概念到高级...

    VC++深入详解(课件+源码)

    《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿...

    VC++深入详解pdf版(第二卷)

    上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    《VC++深入详解》清晰PDF格式电子书.part03.rar

    《VC++深入详解》清晰PDF格式电子书.part03.rar

    VC++深入详解pdf版(第四卷)

    上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    VC++深入详解pdf版(第十一卷)

    上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档 资源绝对好 大家放心

    VC++深入详解code

    通过深入学习《VC++深入详解code》中的这些主题,开发者不仅可以提升VC++编程技能,还能掌握系统级编程和网络通信的核心知识,为开发高效、稳定的软件打下坚实基础。书中可能包含了大量的代码示例和实践案例,帮助...

    VC++深入详解pdf版(第七卷)

    上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    VC++深入详解pdf版(第八卷)

    上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    VC++深入详解源码

    《VC++深入详解源码》是一份非常宝贵的资源,它为学习和理解VC++的深层原理提供了丰富的素材。这份资源适合初级和中级开发者,以及教育工作者,帮助他们深入探究编程语言的核心机制,提升编程技能。 VC++,全称为...

    《VC++深入详解》源代码

    《VC++深入详解》是一本深受编程初学者喜爱的书籍,尤其对于想要深入了解Microsoft Visual C++(VC++)的人来说,这本书提供了丰富的实例和详细的解释。配套的源代码是作者为了帮助读者更好地理解和实践书中理论而...

    VC++深入详解pdf版(第六卷)

    上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档

    VC++深入详解 源码

    通过《VC++深入详解》的源码分析,读者不仅可以学习到VC++编程的基础知识,还能深入了解各种高级技术的运用,提高编程技巧和问题解决能力。书中的实例代码是实践这些概念的宝贵资源,读者可以动手运行、修改和调试,...

    VC++深入详解是chm的

    《VC++深入详解》是一本专注于C++编程语言深度解析的专著,尤其针对使用Microsoft Visual C++(简称VC++)开发环境的程序员。这本书涵盖了C++语言的基础、进阶和高级主题,旨在帮助读者全面理解和掌握C++编程技术,...

Global site tag (gtag.js) - Google Analytics