Функция WinMain вызывается системой как точку первоначального входа для приложения на основе Win32.
int WINAPI WinMain) HINSTANCE hInstance, / / обработать текущий экземплярHINSTANCEhPrevInstance, / / обработать предыдущий экземплярLPSTRlpCmdLine, / / указатель для командной строкиintnCmdShow / / показать состояние окна);
Если вам нужно определить, существует ли уже другой экземпляр, создайте уникально именованного мьютекса с помощью функции CreateMutex . CreateMutex будет успешной, даже если мьютекс уже существует, но ERROR_ALREADY_EXISTS возвращает функция GetLastError . Это означает, что существует еще один экземпляр приложения, потому что он создал объект mutex сначала.
Значение | Значение |
---|---|
SW_HIDE | Скрывает окно и активирует другое окно. |
SW_MINIMIZE | Минимизирует указанное окно и активирует окно верхнего уровня системы в списке. |
SW_RESTORE | Активируется и выводится окно. Если свернутого или развернутого окна, система восстанавливает свой оригинальный размер и положение (аналогично SW_SHOWNORMAL). |
SW_SHOW | Активирует окно и отображает его в свой текущий размер и положение. |
SW_SHOWMAXIMIZED | Активирует окно и отображает его в развернутом окне. |
SW_SHOWMINIMIZED | Активирует окно и отображает его в виде пиктограммы. |
SW_SHOWMINNOACTIVE | Отображает окно в значок. Активное окно остается активным. |
SW_SHOWNA | Отображает окно в текущем состоянии. Активное окно остается активным. |
SW_SHOWNOACTIVATE | Отображает окно в свои последние размер и положение. Активное окно остается активным. |
SW_SHOWNORMAL | Активируется и выводится окно. Если свернутого или развернутого окна, система восстанавливает свой оригинальный размер и положение (аналогично SW_RESTORE). |
В случае успеха, он прекращает когда он получает сообщение WM_QUIT должен возвращать значение выхода, содержащееся в параметре wParam этого сообщения. Если функция завершается до входа в цикл сообщений, он должен возвращать ноль.
Ваш WinMain следует инициализировать приложение, отображать ее главное окно и введите цикл получения и отправки сообщений, является структура управления верхнего уровня на оставшуюся часть выполнения приложения. Прекратить цикл обработки сообщений, когда он получает сообщение WM_QUIT. В тот момент ваш WinMain должна выйти из приложения, возвращение значения, переданного в параметре wParam сообщения WM_QUIT. Если WM_QUIT был получен из-за вызова PostQuitMessage, значение wParam является значение параметра nExitCode PostQuitMessage функции. Дополнительные сведения содержатся в разделе создание цикла обработки сообщений.
ANSI приложения могут использовать параметр lpCmdLine функции WinMain для доступа к командной строки, за исключением имя программы. WinMain не может возвращать строки Юникода потому, что lpCmdLine использует тип LPSTR данных, тип не LPTSTR данных. Функция GetCommandLine может использоваться для доступа к Unicode-строки в командной строке, потому что она использует тип данных LPTSTR.
Windows CE: Windows CE не поддерживает следующие значения для параметра nCmdShow
SW_MINIMIZE
SW_RESTORE
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVE
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winbase.h.
Импорта библиотеки:Определяемые пользователем.
Обзор Windows, функции окна, CreateMutex, DispatchMessage, GetCommandLine, GetMessage, PostQuitMessage, TranslateMessage