Функция
WinMainФункция
WinMain вызывается системой как начальная точка входа, для базирующейся на Windows, прикладной программы.Синтаксис:
hInstance, // дескриптор текущего экземпляра окна HINSTANCE hPrevInstance,// дескриптор предыдущего экземпляра окна LPSTR lpCmdLine, // указатель на командную строку int nCmdShow // показывает состояние окна ); |
Параметры
hInstance
[in] Дескриптор текущего экземпляра прикладной программы.
hPrevInstance
[in] Дескриптор предыдущего экземпляра приложения. Этот параметр всегда имеет значение ПУСТО (NULL). Если Вам нужно обнаружить, существует ли другой экземпляр уже существующей программы, создайте именованный
mutex-объект, используя функцию CreateMutex. Функция CreateMutex завершится успешно, даже если мьютекс (флажок блокировки) уже существует, но функция возвратит ERROR_ALREADY_EXISTS. Это указывает (обозначает), что другой экземпляр вашего приложения существует, потому что он первым создал мьютекс.lpCmdLine
[in] Указатель на строку с символом нуля в конце, устанавливающую командную строку для приложения, исключая имя программы. Чтобы извлечь полную командную строку, используйте функцию
GetCommandLine .nCmdShow
[in] Определяет, как окно должно быть показано. Этот параметр может быть одним из следующих значений:
Значение |
Предназначение |
SW_HIDE |
Скрывает окно и активизирует другое окно. |
SW_MAXIMIZE |
Максимизирует заданное окно. |
SW_MINIMIZE |
Минимизирует заданное окно и активизирует следующее окно верхнего уровня в Z-последовательности . |
SW_RESTORE |
Активизирует и показывает на экране окно. Если окно минимизировано или развернуто, система восстанавливает его в первоначальном размере и позиции. Приложение должно установить этот флажок при восстановлении свернутого окна. |
SW_SHOW |
Активизирует и отображает окно на экране в его текущем размере и позиции. |
SW_SHOWMAXIMIZED |
Активизирует окно и отображает его как развернутое окно. |
SW_SHOWMINIMIZED |
Активизирует окно и отображает его как пиктограмму. |
SW_SHOWMINNOACTIVE |
Отображает окно как пиктограмму. Это значение походит на флажок SW_SHOWMINIMIZED, исключая окно, которое не активизировано. |
SW_SHOWNA |
Отображает окно в его текущих размерах и позиции. Это значение походит на флажок SW_SHOW, исключая окно, которое не активизировано. |
SW_SHOWNOACTIVATE |
Отображает окно в его самых последних размерах и позиции. Это значение походит на флажок SW_SHOWNORMAL, исключая окно, которое не активизировано. |
SW_SHOWNORMAL |
Активизирует и отображает на экране окно. Если окно минимизировано или развернуто, система восстанавливает его в первоначальных размерах и позиции. Приложение должно установить этот флажок при отображении на экране окна впервые. |
Возвращаемые значения
Если функция достигла цели, то завершается тогда, когда примет сообщение
WM_QUIT , при этом она должна возвратить значение выхода, содержащееся в параметре wParam этого сообщения. Если функция завершается перед вводом цикла сообщений, она должна возвратить 0.Замечания
WinMain
инициализирует прикладную программу, отображает на экране её основное окно и, затем, входит в извлекающий и распределяющий цикл сообщений, который является управляющей структурой верхнего уровня для остальных элементов выполнения прикладной программы. Цикл сообщений завершается тогда, когда он получает сообщение WM_QUIT. В этот момент, WinMain завершает работу прикладной программы, возвращая значение, переданное в параметр wParam сообщения WM_QUIT. Если WM_QUIT было получено в результате вызова PostQuitMessage, значение wParam - значение параметра nExitCode функции PostQuitMessage. Для получения дополнительной информации, см. Создание цикла обработки сообщений .Приложения
ANSI могут использовать параметр lpCmdLine функции WinMain, чтобы обратиться к командной строке, исключая имя программы. Причина этого в том, что WinMain не может возвращать строки Уникода из-за того, что lpCmdLine использует тип данных LPSTR, не тип данных LPTSTR. Функция GetCommandLine может быть использована для обращения к строкамUnicode в командной строке, потому что она использует тип данных
LPTSTR.Смотри также
, CreateMutex, DispatchMessage, GetMessage, GetCommandLine, PostQuitMessage, TranslateMessage
Размещение и совместимость WinMain |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |