ShowWindow
函数功能:ShowWindow 函数用于设置窗口的显示状态。
应用程序第一次调用 ShowWindow 时,应该使用 WinMain 函数的 nCmdshow 参数作为它的 nCmdShow 参数。在随后调用 ShowWindow 函数时,必须使用下列显示方式中的一个给定值,而不是由 WinMain 函数的 nCmdSHow 参数指定的值。
API 函数原型:
BOOL WINAPI ShowWindow(
_In_HWND hWnd,
_In_int nCmdShow
);
参数解析:
参数 含义
hWnd 窗口句柄
nCmdShow 控制窗口如何显示,如果发送应用程序的程序提供了 STARTUPINFO 结构,则应用程序第一次调用 ShowWindow 时该参数被忽略。否则,在第一次调用 ShowWindow 函数时,该值应为在函数 WinMain 中 nCmdShow 参数。
在随后的调用中,nCmdShow 参数可以为下列值之一:
显示方式 含义
SW_FORCEMINIMIZE1. 最小化窗口,即使拥有窗口的线程被挂起也会最小化
2. 在从其他线程最小化窗口时才使用这个参数
SW_HIDE 隐藏窗口并激活其他窗口
SW_MAXIMIZE 最大化指定的窗口
SW_MINIMIZE 最小化指定的窗口并且激活在 Z 序中的下一个顶层窗口
SW_RESTORE1. 激活并显示窗口
2. 如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置
3. 在恢复最小化窗口时,应用程序应该指定这个标志。
SW_SHOW 在窗口原来的位置以原来的尺寸激活并显示窗口
SW_SHOWDEFAULT 依据在 STARTUPINFO 结构中指定的 SW_FLAG 标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给 CreateProcess 函数的。
SW_SHOWMAXIMIZED 激活窗口并将其最大化
SW_SHOWMINIMIZED 激活窗口并将其最小化
SW_SHOWMINNOACTIVE1. 窗口最小化
2. 在窗口激活的情况下,这个值跟 SW_SHOWMINIMIZED 很相似
SW_SHOWNA1. 以窗口原来的位置以原来的尺寸显示窗口
2. 在窗口激活的情况下,这个值跟 SW_SHOW 很相似
SW_SHOWNOACTIVATE1. 以窗口最近一次的位置和尺寸显示窗口
2. 在窗口激活的情况下,这个值跟 SW_SHOWNORMAL 很相似
SW_SHOWNORMAL1. 激活并显示一个窗口
2. 如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小
3. 应用程序在第一次显示窗口的时候应该指定此标志
返回值:
1. 如果窗口之前可见,则返回值为非 0;
2. 如果窗口之前被隐藏,则返回值为 0。
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
WinSDK 沙发是我的:big{:5_101:}{:5_90:} :lol:第二个沙发 xqlsrjjjh 发表于 2014-5-16 13:13 static/image/common/back.gif
第二个沙发
第二位请坐板凳~ :lol::titter: 大神,你是瓦塔库西的呕像 甲鱼哥 视频教程里的代码是ShowWindow(hwnd, iCmdShow) 上面的是nCmdShow 请问iCmdShow和nCmdShow 有什么区别? 问一下SW_MAXIMIZE和WS_MAXIMIZE的区别 甲鱼大神级别的你好:那个窗口!窗口!,讲的太了,我一下子就能听懂。知道我是为什么回来学WINDOWS编程吗,是我在win32汇编那个窗口,太难了,才回来学的,今天第二天,一下就懂。真的是那句话 I Love FishC.com:big {:9_231:} 不是很理解SW_HIDE 真好,小鱼哥 {:5_92:} {:5_107:} {:5_92:} 疾风。意破天晴 发表于 2016-8-4 09:46
不知道几楼{:10_245:}
{:5_95:} 感谢分享! 路过学习 感谢小甲鱼哈哈{:10_254:} static int cxClient, cyClient;
switch (message)
{
case WM_SIZE:
cxClient = LOWORD(lParam);
cyClient = HIWORD(lParam);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
MoveToEx(hdc,0,cyClient/2,NULL);
LineTo(hdc, cxClient, cyClient / 2);
EndPaint(hwnd, &ps);
return 0;
ShowWindow(hwnd)会发送WM_SIZE消息,但是我的程序运行没有显示出图形,移动一下窗口,改变一下大小才会绘制图形,感觉是因为没有经过WM_SIZE,没有给cxClient,cyClient赋值导致的,但是我断点调试时发现有WM_SIZE,也就是说调试是正常的,开始执行(不调试会有问题),到底是什么原因?求大神给予解答?是不是这个函数有什么特性?
页:
[1]
2