⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 09.1.2 在窗口创建之后修改.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
9.1.2 在窗口创建之后修改
 	上面介绍的是在窗口创建之前修改它的默认外观的方法,在窗口创建之后可以利用前面己经介
绍过的SetWindowLong这个函数来实现这种功能。关于该函数的声明可参见第七章中的相关内容,为
 了改变窗口的类型,该函数的第二个参数应指定为GWL_STYLE,第三个参数应指定新的窗口类型。
在MFC程序中,如果想在窗口创建之后改变其外观,可以在框架类 ( CMainFrame ) 的 OnCreate函
数中添加具体的实现代码。读者可以查看该函数的代码,将会发现它首先调用了基类的OnCreate函
数,以完成窗口的创建,这样,我们就可以在该函数的最后,但要在 return语旬之前添加改变窗口
外观的代码。注意:这时我们应先将上面我们在 CMainFrame类PreCreateWindow函数中添加的代码注
释起来 (即恢复到例 9-1所示代码),然后在OnCreate函数的最后,但要在retum语句之前添加如例
9-3中加灰显示的那行代码。
例9-3
int CMainFrame : :OnCreate(LPCREATESTRUCT lpCreateStruct) { 
// TODO : Delete these three lines if you don ' t want the toolbar t o 
// be dockable 
m_wndToolBar . EnableDocking (CBRS_ALIGN_ANY) ; 
EnableDock ing(CBRS_ALIGN_ANY) ; 
DockControlBar(&m_wnd~oolBar) ; 


9SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW) ; 
return 0 ; 
Build并运行Style程序,将会发现Style应用程序窗口标题栏上去掉了文档的标题,如图9.4所示。

当修改窗口外观时,如果是在己有类型的基础上进行一些修改的话,那么首先要获得这个窗口的现
有类型,这可以利用 GetWindowLong这个函数来实现。该函数的作用是获取指定窗口的信息,它的
原型声明如下所示:
LONG GetWindowLong( HWND hWnd , int nIndex) ; 
其中,第一个参数 ChWnd)是想要获取其信息的窗口的句柄,第二个参数 C nIndex )指定要获取的
信息类型,其取值参见第 7章中对 SetWindowLong函数的介绍,如果将这个参数指定为 GWL_STYLE.
那么该函数就是获取指定窗口的类型。 GetWindowLong函数的返回值就是获取到的窗口信息。
GWL就是 GetWindowLong三个单词首字母的缩写。

下面,我们首先在 Style程序的 CMainFrame类的 OnCreate函数中,把上面添加的那条修改窗口外
观的语句(即如例如3所示代码中。符号所标注的那行代码)注释起来。接着,就在该代码的下方添加
下面这行语句,利用 GetWindowLong函数和 SetWindowLong函数修改 Style程序窗口外观:去掉窗门
的最大化功能。前者获取窗口己有的类型,后者在此基础上去掉窗口的最大化框类型。 
		SetWindowLong (m_hWnd , GWL_STYLE , GetWindowLong (m_hWnd , GWL_STYLE) & ~WS_ 
MAXIMIZEBOX) ; 
Build并运行 Style程序,可以看到,程序窗口右上角的最大化框变灰了(如图 9.5所示)。当用鼠标
双击程序的标题栏时,窗口也不会放大了。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -