我一直很好奇nCmdShow在使用Windows API的C程序的WinMain中意味着什么.
我查看了正式的解释:"控制窗口的显示方式.此参数可以是以下值之一."
我不明白这意味着什么,因为Windows程序可以包含多个窗口,或者根本没有窗口.另外,随着程序的开始,没有窗口可以开始显示,这让我更加质疑这个论点.
同样从我读到的,它总是保持10,这甚至不在" http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559%28v=vs.85 "的选项列表中%29.aspx "......
它已经过时了吗?有人可以解释它的用途,或提供任何解释其用途的参考资料吗?我试着谷歌搜索但没有看到任何东西.
谢谢!
重新审视:
右键单击快捷方式并转到属性时,可以选择启动最小化,最大化或正常(ly)窗口.
Windows为您的程序提供了一个nCmdShow,以防它以这三种方式中的任何一种方式启动时以特殊方式执行操作.例如,如果请求以最小化方式启动它,它可能会隐藏在通知栏内.
详尽无遗:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548(v=vs.85).aspx描述了可以传递的所有不同方式.
它基本上是对应用程序应如何显示其主窗口的提示。虽然是legacy,但没有hPrevInstance参数那么legacy 。但是,我离题了……
nCmdShow参数的值将是ShowWindow的 API 参考中指定的常量之一。它可以由另一个进程或系统通过CreateProcess. STARTUPINFO可以选择传递给的结构CreateProcess包含一个wShowWindow成员变量,该变量将WinMain通过nCmdShow参数传递给。
nCmdShow传递参数的另一种方式是通过调用ShellExecute.
在我的头顶上,我想不出任何情况(在最近版本的 Windows 中)操作系统将显式传递一个值而不是SW_SHOW启动应用程序时。
应用程序忽略nCmdShow传递给WinMain[?]的标志并不少见也不是坏事。
请注意ShowWindow文档中的这一部分:
nCmdShow:ShowWindow如果启动应用程序的程序提供了STARTUPINFO结构,则在应用程序第一次调用时会忽略此参数.
即使您的程序在启动时没有窗口,也会在您第一次调用时隐式使用指定的值ShowWindow.(但是,它不是直接从WinMain局部nCmdShow变量读取的,所以你不能改变它的值,WinMain并期望得到不同的结果.从这个意义上说,除非你的程序需要做一些特殊的事情,如果它开始最小化或者最大化.)
| 归档时间: |
|
| 查看次数: |
7785 次 |
| 最近记录: |