关于CreateWindow()设置了WS_MAXIMIZE|WS_VISIBLE样式后,窗口最大化失败(解决)

HWND WINAPI CreateWindow(

 __in_opt  LPCTSTR lpClassName,

 __in_opt  LPCTSTR lpWindowName,

 __in      DWORD dwStyle,

 __in      int x,

 __in      int y,

 __in      int nWidth,

 __in      int nHeight,

 __in_opt  HWND hWndParent,

 __in_opt  HMENU hMenu,

 __in_opt  HINSTANCE hInstance,

 __in_opt  LPVOID lpParam

);

 

VC上课的时候,老师课堂演示CreateWindow(),在添加了WS_MAXIMIZE|WS_VISIBLE样式后,发现窗口并没有和预期的一样,显示最大化。然后老师让我们回来自己尝试解决一下。

这里列出三种解决方法:

1. 不在dwStyle里添加WS_MAXIMIZE|WS_VISIBLE,而是把nWidth和nHeight选项值由默认的CW_USEDEFALT改为WS_MAXIMIZE。不过,这种方式貌似偏离了我们的初衷。

2. 调用ShowWindow(hWnd,SW_SHOWMAXIMIZE|nCmdShow)时,即往显示参数里面添加了SW_SHOWMAXIMIZE,也达到了目的,但是,依然,偏离了初衷。

3. 这种方法是我阅读MSDN后,发现的。关于ShowWindow()函数有这么一段描述

On subsequent calls, the application mustcall ShowWindow with nCmdShow set to SW_SHOWDEFAULT to use the startupinformation provided by the program that launched the application. Thisbehavior is designed for the following situations:

Applications create their main window bycalling CreateWindow with the WS_VISIBLE flag set.

Applications create their main window bycalling CreateWindow with the WS_VISIBLE flag cleared, and later callShowWindow with the SW_SHOW flag set to make it visible.

然后在CreateWindow()函数中,dwStyle只是设置窗口初始化时的值。

所以,我们这里应该调用ShowWindow(hWnd,SW_SHOW|nCmdShow)!!!

 

SW_SHOW:Activates the windowand displays it in its current size and position.

CreateWindow函数的每个参数的所有可能值如下: 1. lpClassName:可以是预定义的窗口类名,也可以是应用程序自己注册的窗口类名。 2. lpWindowName:窗口标题,可以是字符串或者NULL。 3. dwStyle:窗口风格,可以是以下值或它们的组合: - WS_OVERLAPPED:普通窗口,有标题栏和边框。 - WS_POPUP:弹出式窗口,没有标题栏和边框。 - WS_CHILD:子窗口。 - WS_BORDER:有边框。 - WS_CAPTION:有标题栏。 - WS_CLIPCHILDREN:剪切子窗口的区域。 - WS_CLIPSIBLINGS:剪切兄弟窗口的区域。 - WS_DISABLED:禁用窗口。 - WS_DLGFRAME:对话框窗口。 - WS_GROUP:组合框。 - WS_HSCROLL:有水平滚动条。 - WS_MAXIMIZE最大化窗口。 - WS_MAXIMIZEBOX:最大化按钮。 - WS_MINIMIZE:最小化窗口。 - WS_MINIMIZEBOX:最小化按钮。 - WS_OVERLAPPEDWINDOW:普通窗口(有标题栏和边框),包含最大化、最小化、关闭按钮。 - WS_POPUPWINDOW:弹出式窗口,包含最大化、最小化、关闭按钮。 - WS_SIZEBOX:有大小调整框。 - WS_SYSMENU:有系统菜单。 - WS_TABSTOP:可以通过Tab键切换焦点。 - WS_THICKFRAME:有大小调整框。 - WS_TILED:普通窗口,有标题栏和边框。 - WS_VISIBLE:可见窗口。 4. x:窗口左上角的x坐标。 5. y:窗口左上角的y坐标。 6. nWidth:窗口的宽度。 7. nHeight:窗口的高度。 8. hWndParent:父窗口句柄。 9. hMenu:菜单句柄或者子窗口ID。 10. hInstance:应用程序实例句柄。 11. lpParam:应用程序定义的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值