之前说过, 修改窗口大小,窗口样式的方法。 这里说明一下修改窗口的图标,光标和背景的方法。
修改窗口大小,样式是在创建窗口的时候进行的,而修改图标,光标和背景是在设计窗口类的时候进行的。 由于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也设置了相关背景和光标。
分享到:
相关推荐
Visual C++深入详解学习笔记,word文檔
VC++深入详解学习笔记(非常全面)
VC++深入详解代码3-4章,很全的东西
上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档
VC++深入详解,学习VC++的经典教材
VC++深入详解完整版,并带完整详细的书签,包括每章,每节的书签索引。
孙鑫 VC++ 深入详解书中源码
VC++深入详解 书上的源码(全) VC++深入详解 书上的源码(全) VC++深入详解 书上的源码(全)
《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿...
《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿...
上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档
VC++深入详解code(CHAP5-CHAP8)
VC++深入详解
上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档