![]() |
Win API, windows.h
Вот код:
Листинг №2 "Первое окно" #include<windows.h> //Создаём прототип функции окна, которая будет определена ниже LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //объявляем строку-имя программы char szProgName[]="Имя программы"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hWnd; MSG lpMsg; WNDCLASS w; //создаём экземпляр структуры WNDCLASS //И начинаем её заполнять w.lpszClassName=szProgName; //имя программы - объявлено выше w.hInstance=hInstance; //идентификатор текущего приложения w.lpfnWndProc=WndProc; //указатель на функцию окна w.hCursor=LoadCursor(NULL, IDC_ARROW); //загружаем курсор w.hIcon=0; //иконки у нас не будет пока w.lpszMenuName=0; //и меню пока не будет w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH ); //цвет фона окна w.style=CS_HREDRAW|CS_VREDRAW; //стиль - перерисовываемое по х и по у w.cbClsExtra=0; w.cbWndExtra=0; //Если не удалось зарегистрировать класс окна - выходим if(!RegisterClass(&w)) return 0; //Создадим окно в памяти, заполнив аргументы CreateWindow hWnd=CreateWindow(szProgName, //Имя программы "Моя первая программа!", //Заголовок окна WS_OVERLAPPEDWINDOW, //Стиль окна - перекрывающееся 100, //положение окна на экране по х 100, //положение по у 500, //ширина 400, //высота (HWND)NULL, //идентификатор родительского окна (HMENU)NULL, //идентификатор меню (HINSTANCE)hInstance, //идентификатор экземпляра программы (HINSTANCE)NULL); //отсутствие дополнительных параметров //Выводим окно из памяти на экран ShowWindow(hWnd, nCmdShow); //Обновим содержимое окна UpdateWindow(hWnd); //Цикл обработки сообщений while(GetMessage(&lpMsg, hWnd, 0, 0)) { //Получаем сообщение из очереди TranslateMessage(&lpMsg); //Преобразует сообщения клавиш в символы DispatchMessage(&lpMsg); //Передаёт сообщение соответствующей функции окна } return(lpMsg.wParam); } //Функция окна LRESULT CALLBACK WndProc(HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam) { HDC hdc; //создаём контекст устройства PAINTSTRUCT ps; //создаём экземпляр структуры графического вывода //Цикл обработки сообщений switch(messg) { //сообщение рисования case WM_PAINT : //начинаем рисовать hdc=BeginPaint(hWnd, &ps); //здесь вы обычно вставляете свой текст: TextOut(hdc, 150,150, "Здравствуй, WIN 32 API!!!!", 26); //закругляемся //обновляем окно ValidateRect(hWnd, NULL); //заканчиваем рисовать EndPaint(hWnd, &ps); break; //сообщение выхода - разрушение окна case WM_DESTROY: PostQuitMessage(0); //Посылаем сообщение выхода с кодом 0 - нормальное завершение break; default: return(DefWindowProc(hWnd, messg, wParam, lParam)); //освобождаем очередь приложения от нераспознаных } return 0; } Сначала написал его сам, пытался вникнуть. Не работает. Потом скопипастил с книги. Не работает. Выбивает ЭТО: ![]() Что это может быть??? ЗЫЖ Code::Bloks, MinGW |
Ответ: Win API, windows.h
попробуй winmm.lib подключить
|
Ответ: Win API, windows.h
ты создавал Win32 проект?
у меня все работает, на том же C::B и MinGW. |
Ответ: Win API, windows.h
HolyDel создавал, Win32 gui project, возможно что то сделал косоруко (скорее всего), сейчас попробую по другому.
ЗЫ с другого сайта качал аналогичный пример, только там чуть проще - все работало идеально :) ЗЫЗЫ пробовал в Win32 GUI - теперь ошибка еще страшнее... Он говорит, что препроцессинг прошел неудачно :( |
Ответ: Win API, windows.h
Люди!!!! Пожалуйста!!!! Помогите!!!!
POINT pt; GetCursorPos(&pt); SendMessage(Wnd,WM_LBUTTONDOWN,NULL,LOWORD(pt.x)+H IWORD(pt.y)); SendMessage(Wnd,WM_LBUTTONUP,NULL,MAKELONG(pt.x,pt .y)); не работает!!! Почему??? |
Часовой пояс GMT +4, время: 15:20. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot