VC改变窗口大小和样式

VC改变窗口大小和样式

ID:39469614

大小:131.00 KB

页数:9页

时间:2019-07-04

VC改变窗口大小和样式_第1页
VC改变窗口大小和样式_第2页
VC改变窗口大小和样式_第3页
VC改变窗口大小和样式_第4页
VC改变窗口大小和样式_第5页
资源描述:

《VC改变窗口大小和样式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、改变窗口的外观和大小改变窗口的外观和大小需要在窗口创建以前改变。所以我们可以在CMainFrame的PreCreateWindow中改变CREATESTRUCT结构体的值就行了。E.G.BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs)改变窗口的大小->cs.cx=300;cs.cy=200;改变窗口的显示位置坐标是cs.x和cs.y这里常用的一个函数是::GetSysMetrics(SM_CXSCREEN);::GetSysMetrics(SM_CY

2、SCREEN);用来取得屏幕的大小。要改变窗口标题栏的字符串:cs.lpszName="Seven";会发现标题栏不会改变窗口的标题栏的上的字符串。改变单文档应用程序的标题栏的字符串参考MSDNwindowstyles/Frame-windowstyles下面有一个ChangingthestylesofawindowcreatebyMFC./TheSDICase默认的情况是WS_OVERLAPPEDWINDOWandFWS_ADDTOTITLEstylesFWS_ADDTOTITLEisaddth

3、edocumenttitletothewindow’scaption.去掉FWS_ADDTOTITLE就可以更改窗口标题栏字符串。cs.style&=~FWS_ADDTOTITLE;cs.lpszName="Seven";如果我们需要改变背景,画刷,光标等等时候。我们可以在:PreCreateWindow中创建窗口类,WNDCLASSwndClass;把这个类里的值改变成自己想要的内容就可以了。E.G.wndClass.cbClsExtra=0;wndClass.cbWndExtra=0;wndC

4、lass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);wndClass.hCursor=LoadCursor(NULL,IDC_WAIT);wndClass.hIcon=LoadIcon(NULL,IDI_WARNING);wndClass.hInstance=AfxGetInstanceHandle();获取应用程序的实例句柄可用AfxGetInstanceHandle函数,这个函数是一个全局的函数,前面有一个AFX表示是一个应用程序框架

5、类函数,哪里都可用。wndClass.lpfnWndProc=::DefWindowProc;我们只是想要改变窗口的图标,光标,不想改变条用过程所以用defWindowProc函数来处理。因为在CWnd中也有一个defWindowProc函数,比全局的函数少一个参数如果不加::的话调用就要报错。wndClass.lpszMenuName=NULL;创建菜单并不是在在设计窗口类的时候创建,菜单的创建实在CStyleAPP::InitInstance函数中将菜单的标识传进去。wndClass.styl

6、e=CS_HREDRAW

7、CS_VREDRAW;这里的style并不是窗口的类型而是窗口类的类型。RegisterClass(&wndClass);注册窗口类。cs.lpszClass="GL";后来把我们刚刚设计好的类赋值个cs.lpszClass。运行程序之后我们会发现只有图标改变了,cursor和brush都没有改变。这是因为,我们是在frame中改变的,在frame上边还覆盖一个子窗口类。所以我要改变这些需要把在子窗口的View类中PreCreateWindow中把类名复制。E.g在CSt

8、yleView中cs.lpszClass="GL";就可以把我们刚刚的想要的类型来改变view中的窗口类型,因为“GL”窗口类已经在CMainFrame框架类中已经注册了,所以我们可以直接赋值就可以了。在frame中只可以改变ICON,为了改变图标我们重写窗口类我很不划算,在MFC中为我们提供了一个函数AfxRegisterWndClass直接改变icon详见MSDNcs.lpszName=AfxRegisterWndClass(CS_HREDRAW

9、CS_VREDRAW,0,0,LoadIcon

10、(NULL,IDI_WARNING));这样就直接改变了frame中Icon。我们也可以在CStyleView中调用这个函数来改变窗口的画刷,光标。窗口创建之后改变外观用SetWinowLong函数具体见MSDNLONGSetWindowLong(HWNDhWnd,//handleofwindowintnIndex,//offsetofvaluetosetLONGdwNewLong//newvalue);在CMainFrame的OnCreate中调用SetWindowLongSet

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。