 28.08.2008 в 14:55
Вот в книге вычитал, как создать простое окно типа Windows Aplication, но он не работает. Помогите найти ошибку....
// Стандартный включаемый файл Windows
#include <windows.h>
// Прототип функции обратного вызова для обработки сообщений
LRESULT CALLBACK fnMessageProcessor (HWND, UINT, WPARAM, LPARAM);
// Функция вызывается автоматически, когда программа запускается
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
int iCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASSEX wndclass;
// Настройка класса окна
wndclass.cbSize = sizeof(WNDCLASSEX);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = fnMessageProcessor;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "Window Class"; // Имя класса
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
// Регистрация класса окна
if(RegisterClassEx(&wndclass) == 0)
{
// Сбой программы, выход
exit(1);
}
// Создание окна
hWnd = CreateWindowEx(
WS_EX_OVERLAPPEDWINDOW,
"Window Class", // Имя класса
"Create Window Example", // Текст заголовка
WS_OVERLAPPEDWINDOW,
0,
0,
320,
200,
NULL,
NULL,
hInstance,
NULL);
// Отображение окна
ShowWindow(hWnd, iCmdShow);
// Обработка сообщений, пока программа не будет прервана
while(GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
// Функция обратного вызова для обработки сообщений
// (НЕОБХОДИМА ВСЕМ ПРОГРАММАМ ДЛЯ WINDOWS)
LRESULT CALLBACK fnMessageProcessor (HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch(iMsg)
{
// Вызывается, когда впервые создается окно
case WM_CREATE:
return(0);
// Вызывается, когда окно обновляется
case WM_PAINT:
return(0);
// Вызывается, когда пользователь закрывает окно
case WM_DESTROY:
PostQuitMessage(0);
return(0);
default:
return DefWindowProc(hWnd, iMsg, wParam, lParam);
}
}
|