WinMain, спасибо за моральную поддержку
Vladimir89, bGisto должен быть глобальной переменной типа bool. Я подразумевал это, неужели не понятно? В Invalidate передаётся ещё один параметр типа BOOL - очищать заинвалидейченную облать или нет. Передавай туда TRUE.
У тебе ещё не хватает обработчика WM_DESTROY. В нём нужно не забыть вызвать PostQuitMessage и не забыть вызывать также DefWindowProc - это важно. Никогда не сталкивался с проблемой, что твою программу приходится снимать через Task Manager?
Графика в MS Visual 2005 C++
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
- Romeo
- Сообщения: 3091
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
УРРЯЯЯЯ!
У МЕНЯ ЗАРАБОТАЛА КНОПОЧКА!!!!!!!
У МЕНЯ ЗАРАБОТАЛА КНОПОЧКА!!!!!!!
Си ++
Здоровье --
Здоровье --
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
ААААААА
Эта дрянь опять не работает!
Решил сделать так: когда появляется окно программы там буде тнаписано текстом: работа такого-то такого-то. А потом когда нажмешь одну кнопку - рисуются точки. А потом когда нажмешь кнопку гистограмма рисуется гистограмма.
И вот значит я написал... Для начала просто тупо с текстом:
Эта дрянь опять не работает!
Решил сделать так: когда появляется окно программы там буде тнаписано текстом: работа такого-то такого-то. А потом когда нажмешь одну кнопку - рисуются точки. А потом когда нажмешь кнопку гистограмма рисуется гистограмма.
И вот значит я написал... Для начала просто тупо с текстом:
Код: Выделить всё
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
int bGisto=0;
int mas[2][500];
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case ID_GISTO:
bGisto=2;
//InvalidateRect(hWnd,NULL,TRUE);
case ID_POINT:
bGisto=1;
//InvalidateRect(hWnd,NULL,TRUE);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT: /////////////////////////////////////////////
hdc = BeginPaint(hWnd, &ps);
if(bGisto==1)
{
//for(int i=0; i<500;i++)
//SetPixel(hdc,mas[0][i],mas[1][i],0);
TextOut(hdc,50,50,_T("Группа ПО0602"),39);
}
else
TextOut(hdc,0,0,_T("Работа Шалаева Владимира. Группа ПО0602"),39);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Си ++
Здоровье --
Здоровье --
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
Кнопки не работают! Ничего не работает и не изменяется!
Почему с 1 кнопкой работало а с 2мя уже не хочет?!!!!!
ППЦ!
Почему с 1 кнопкой работало а с 2мя уже не хочет?!!!!!
ППЦ!
Си ++
Здоровье --
Здоровье --
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
С кнопками разобраться получилось!
Теперь все работает!
У меня новый вопрос: про комманду GetPixel
Мне нужно проверить всё окно программы на наличие темных точек. И запомнить координаты этих темных точек!
ГетПиксель возвращает какое то очень странное значение COLORREF - как им пользоваться никак не могу догадаться!
В общем мне нужен способ как сделать грамотно: if("цвет точки"=="черный") то добавляем координату в массив.
Теперь все работает!
У меня новый вопрос: про комманду GetPixel
Мне нужно проверить всё окно программы на наличие темных точек. И запомнить координаты этих темных точек!
ГетПиксель возвращает какое то очень странное значение COLORREF - как им пользоваться никак не могу догадаться!
В общем мне нужен способ как сделать грамотно: if("цвет точки"=="черный") то добавляем координату в массив.
Си ++
Здоровье --
Здоровье --
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
Еще не получается понять как пользоваться СетТаймером!
Пишу ему так: SetTimer(hWnd,1,2000,0);
Но не работает! ппц!
Пишу ему так: SetTimer(hWnd,1,2000,0);
Но не работает! ппц!
Си ++
Здоровье --
Здоровье --
- Romeo
- Сообщения: 3091
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
1. Я же написал, что bGisto должен быть глобальной переменной, ты различаешь глобальные и локальные переменные?
2. Черный, это RGB(0, 0, 0). Можешь его вполне законно сравнивать оператором == с тем, что возвращает тебе GetPixel.
3. Ты сообщение WM_TIMER обработал в том окне, дескриптор которого передал в SetTimer в качестве первого аргумента? Если нет, то неудивительно, что не работает. Почитай внимательной в MSDN о функции SetTimer, не пытайся всё взять наскоком и методом проб и ошибок - это самый неправильный метод в программировании.
2. Черный, это RGB(0, 0, 0). Можешь его вполне законно сравнивать оператором == с тем, что возвращает тебе GetPixel.
3. Ты сообщение WM_TIMER обработал в том окне, дескриптор которого передал в SetTimer в качестве первого аргумента? Если нет, то неудивительно, что не работает. Почитай внимательной в MSDN о функции SetTimer, не пытайся всё взять наскоком и методом проб и ошибок - это самый неправильный метод в программировании.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
Появился смешной вопрос!
Я создал статический массив int mas[2][500];
Теперь мне нужно передать его в функцию для обработки.
Я как только не изгалялся! Не получается! Мне нужно передать адрес его начала, ведь так? вот я пишу void random(int** mas)... Не работает! Через ссылку пробовал! Не получается! Я знаю что это идиотизм, но если кто сможет - подскажите!
Я создал статический массив int mas[2][500];
Теперь мне нужно передать его в функцию для обработки.
Я как только не изгалялся! Не получается! Мне нужно передать адрес его начала, ведь так? вот я пишу void random(int** mas)... Не работает! Через ссылку пробовал! Не получается! Я знаю что это идиотизм, но если кто сможет - подскажите!
Си ++
Здоровье --
Здоровье --
- Romeo
- Сообщения: 3091
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Слушай, у одного меня такой код компилируется?
Код: Выделить всё
int mas[30][10];
void f(int p[30][10])
{
}
void main()
{
f(mas);
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Vladimir89
- Сообщения: 75
- Зарегистрирован: 21 май 2007, 02:25
А мы таким макаром случайно не одно число передадим? оО
Си ++
Здоровье --
Здоровье --