Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 23.12.2009, 22:56   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
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
(Offline)
 
Ответить с цитированием
Старый 31.12.2009, 18:40   #2
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Win API, windows.h

попробуй winmm.lib подключить
(Offline)
 
Ответить с цитированием
Старый 04.01.2010, 10:11   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Win API, windows.h

ты создавал Win32 проект?

у меня все работает, на том же C::B и MinGW.
(Offline)
 
Ответить с цитированием
Старый 04.01.2010, 19:27   #4
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Win API, windows.h

HolyDel создавал, Win32 gui project, возможно что то сделал косоруко (скорее всего), сейчас попробую по другому.
ЗЫ с другого сайта качал аналогичный пример, только там чуть проще - все работало идеально

ЗЫЗЫ пробовал в Win32 GUI - теперь ошибка еще страшнее... Он говорит, что препроцессинг прошел неудачно
(Offline)
 
Ответить с цитированием
Старый 10.01.2010, 21:54   #5
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: 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));


не работает!!! Почему???
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows GUI h1dd3n 2D-программирование 5 19.11.2009 02:25
Windows :) GomZik Проекты на MidletPascal 22 09.08.2009 23:16
С++ под Windows 3.1 Alex_90 Болтовня 11 05.04.2008 15:57
Windows Vista DarkKnight Болтовня 49 26.12.2006 01:45
Темы для Windows SubZer0 Болтовня 0 26.03.2006 00:20


Часовой пояс GMT +4, время: 15:40.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com