Графика в MS Visual 2005 C++

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Графика в MS Visual 2005 C++

Re: Графика в MS Visual 2005 C++

Enmer » 29 дек 2014, 22:52

Decoder писал(а): Я когда-то делал подобную программу, там множество точек псевдослучайным образом заполняет пространство окна, но при этом они ещё движутся по экрану сверху вниз, создавая эффект дождя. Можешь её скачать и запустить у себя.

Некропостёр, знаю, но можешь скинуть свою программу снова? А то тут что-то побилось и не скачивается

Re: Графика в MS Visual 2005 C++

Romeo » 07 дек 2008, 19:18

Выводить на экран куда? Через HDC? Не пробовал отформатировать строку с помощью того же STL-левского std::stringstream, а затем вывести как обычную строку через TextOut или DrawText?

Re: Графика в MS Visual 2005 C++

Albor » 07 дек 2008, 07:47

Администратор, удалите мой пост. Не хочет сохраняться как положено. При предварительном просмотре - порядок, при сохранении - облом.

Re: Графика в MS Visual 2005 C++

Albor » 07 дек 2008, 07:32

Vladimir89 писал(а):А мы таким макаром случайно не одно число передадим? оО

Если размерности массива известны на этапе компиляции, то так как написал Romeo-самый понятный способ передачи. Можно передать и через указатель, только обращение к элементам массива будет несколько не совсем очевидным. Приведу пример из книги Стауструпа

Код: Выделить всё

[color=#0000ff]void[/color] print_mij([color=#0000ff]int[/color] * m, [color=#0000ff]int[/color] dim1, [color=#0000ff]int[/color] dim2)
{
[color=#0000ff]for[/color]([color=#0000ff]int[/color] i=[color=#ff00ff]0[/color];i<dim1;i++)
{
[color=#0000ff]for[/color]([color=#0000ff]int[/color] j=[color=#ff00ff]0[/color];j<dim2;j++)
cout<<m_[i*dim2+j]<<[color=#808000]'\t'[/color];
cout<<[color=#808000]'\n'[/color];
}
}

Re: Графика в MS Visual 2005 C++

Vladimir89 » 07 дек 2008, 04:50

Можете меня поздравить)
Программа написана.
Я разобрался во всем сам... Даже как то не верится.

Но я по прежнему не знаю, как выводить на экран переменные типа int, float и т.д. Я знаю как выводить строки, но как данные выводить не знаю.
Подскажите как это сделать!?

Re: Графика в MS Visual 2005 C++

Vladimir89 » 07 дек 2008, 02:03

С массивами я выкрутился с помощью глобальных переменных.
Теперь мне нужно узнать как вывести на экран значение переменной (например int)...
Потому что строки я с горем пополам умею выводить, а вот переменные ниразу не пробовал. Пытался найти в хелпе, но так как не знал что примерно нужно вводить для поиска я ничего не нашел.

Еще мне нужно уметь рисовать цветные прямоугольники... Там есть функция мудреная: FillRect(HDC hdc,CONST *RECT lprc,HBRUSH hbr)
Так вот, я не знаю что туда вводить! Ну с хдс все понятно. А указатель на прямоугольник откуда брать? Или как задавать? Непонятно! С брашем тоже не совсем все ясно .Я так понимаю это кисть. Но пока я не знаю что вводить как указатель на прямоугольник я не могу точно проверить .

Re: Графика в MS Visual 2005 C++

Vladimir89 » 06 дек 2008, 18:14

А мы таким макаром случайно не одно число передадим? оО

Re: Графика в MS Visual 2005 C++

Romeo » 06 дек 2008, 17:28

Слушай, у одного меня такой код компилируется?

Код: Выделить всё

int mas[30][10];

void f(int p[30][10])
{
}

void main()
{
   f(mas);
}

Re: Графика в MS Visual 2005 C++

Vladimir89 » 06 дек 2008, 03:35

Появился смешной вопрос!

Я создал статический массив int mas[2][500];
Теперь мне нужно передать его в функцию для обработки.
Я как только не изгалялся! Не получается! Мне нужно передать адрес его начала, ведь так? вот я пишу void random(int** mas)... Не работает! Через ссылку пробовал! Не получается! Я знаю что это идиотизм, но если кто сможет - подскажите!

Re: Графика в MS Visual 2005 C++

Romeo » 01 дек 2008, 22:22

1. Я же написал, что bGisto должен быть глобальной переменной, ты различаешь глобальные и локальные переменные?

2. Черный, это RGB(0, 0, 0). Можешь его вполне законно сравнивать оператором == с тем, что возвращает тебе GetPixel.

3. Ты сообщение WM_TIMER обработал в том окне, дескриптор которого передал в SetTimer в качестве первого аргумента? Если нет, то неудивительно, что не работает. Почитай внимательной в MSDN о функции SetTimer, не пытайся всё взять наскоком и методом проб и ошибок - это самый неправильный метод в программировании.

Вернуться к началу