Ich war schon immer gespannt, was nCmdShow in WinMain eines C-Programms mit Windows-API bedeutet.
Ich habe die formale Erklärung nachgeschlagen: "Steuert, wie das Fenster angezeigt werden soll. Dieser Parameter kann einer der folgenden Werte sein.".
Ich verstehe nicht, was das bedeutet, da ein Windows-Programm mehr als ein Fenster oder gar keine Fenster enthalten kann. Außerdem, wenn das Programm anfängt, gibt es kein Fenster, mit dem ich anfangen könnte, was mich dazu bringt, dieses Argument noch mehr zu hinterfragen.
Auch von dem, was ich gelesen habe, bleibt es immer 10, was nicht einmal auf der Liste der Optionen in " Ссылка " ...
Ist es veraltet? Kann jemand seinen Zweck erklären oder Hinweise zur Verwendung geben? Ich habe versucht zu googeln, aber habe nichts gesehen.
Danke!
REVISITED :
Wenn Sie mit der rechten Maustaste auf eine Verknüpfung klicken und zu Eigenschaften wechseln, gibt es eine Option, um das Fenster Minimiert, Maximiert oder Normal (ly) zu starten.
Windows stellt Ihrem Programm eine nCmdShow bereit, falls es auf eine der drei Arten gestartet werden soll. Beispielsweise kann es sich in der Benachrichtigungsleiste verbergen, wenn es minimiert gestartet wurde.
Für die Vollständigkeit:
Ссылка beschreibt die verschiedenen Möglichkeiten das kann übergeben werden.
Es ist im Grunde ein Hinweis auf die Anwendung, wie es sein Hauptfenster anzeigen soll. Obwohl es Legacy ist, ist es nicht so alt wie der Parameter hPrevInstance
. Aber ich schweife ab ...
Der Wert des Parameters nCmdShow
ist eine der in ShowWindow
's API-Referenz. Es kann von einem anderen Prozess oder System festgelegt werden, das Ihre Anwendung über CreateProcess
. Die STARTUPINFO
-Struktur, die optional verwendet werden kann an CreateProcess
übergeben enthält eine wShowWindow
-Membervariable, die über den Parameter WinMain
an nCmdShow
übergeben wird.
Eine weitere Möglichkeit, den Parameter nCmdShow
zu übergeben, besteht in Aufrufen von ShellExecute
.
Von ganz oben kann ich mir kein Szenario (in neueren Windows-Versionen) vorstellen, in dem das Betriebssystem beim Start einer Anwendung explizit einen anderen Wert als SW_SHOW
übergibt.
Es ist nicht ungewöhnlich, dass eine Anwendung das nCmdShow
-Flag ignoriert, das an WinMain
[?] übergeben wurde.
Beachten Sie diesen Abschnitt in der Dokumentation ShowWindow
:
nCmdShow
: Dieser Parameter wird ignoriert, wenn eine Anwendung zum ersten MalShowWindow
aufruft, wenn das Programm, das die Anwendung gestartet hat, eineSTARTUPINFO
-Struktur bereitstellt.
Obwohl Ihr Programm beim Start kein Fenster enthält, wird der angegebene Wert implizit verwendet, wenn Sie zum ersten Mal ShowWindow
aufrufen. (Es wird jedoch nicht direkt aus der lokalen WinMain
-Variablen von nCmdShow
gelesen, daher können Sie seinen Wert nicht innerhalb von WinMain
ändern und unterschiedliche Ergebnisse erwarten. In diesem Sinne ist es nicht besonders nützlich, es sei denn, Ihr Programm benötigt es etwas Besonderes zu tun, wenn es minimiert oder maximiert gestartet wird.)
nCmdShow ist ein Integertyp, dieser Parameter gibt an, wie die Anwendungsfenster angezeigt werden sollen (nach O.S.) Wenn von Ihnen kein Wert angegeben wird als standardmäßig Windows OS. Sage SW_NORMAL Wert dieses Parameters. Sie können Werte für diesen Parameter angeben, jedoch diejenigen, die an WinMain () nur für Windows OS
übergeben wurdenTags und Links winapi