Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2010, 10:16   #1
260526052605
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 12
По умолчанию Случайный цвет в Visual C++

Пытаюся разобраться в рисовании на pictureBox'е, и никак не могу установить случайный цвет. Хочу нарисовать квадрат 100x100 каждый пиксель своим цветом.

Bitmap* btmBack = new Bitmap(100,100);
Bitmap* btmFront = new Bitmap(100,100);
Graphics* grBack = Graphics::FromImage(btmBack);
Graphics* grFront = Graphics::FromImage(btmFront);
pictureBox1->Image = btmFront;
pictureBox1->BackgroundImage = btmBack;
for (int i = 0;i!=100; i++)
for (int j = 0;j!=100; j++) grBack->DrawRectangle(Pens::Red,i,j,i+1,j+ 1);
___________________________________ ____________/\сюда надо запихать случ. цвет

помогите, кому не трудно, а то я в C++ совсем не шарю((
260526052605 вне форума Ответить с цитированием
Старый 27.06.2010, 10:27   #2
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

int red = rand()%256;
int green = rand()%256;
int blue = rand()%256;

COLORREF color = RGB(red,green,blue);
capta1n вне форума Ответить с цитированием
Старый 27.06.2010, 12:18   #3
260526052605
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 12
По умолчанию

у меня пишет, что C++ не знает, что такое COLORREF и RGB, хотя когда начинаю вводить RGB он выдает список параметров((
260526052605 вне форума Ответить с цитированием
Старый 27.06.2010, 12:20   #4
260526052605
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 12
По умолчанию

error C2065: 'COLORREF' : undeclared identifier
error C3861: 'RGB': identifier not found, even with argument-dependent lookup
260526052605 вне форума Ответить с цитированием
Старый 27.06.2010, 13:40   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

я создавал массив цветов и дергал оттуда случайный элемент
dampirik вне форума Ответить с цитированием
Старый 27.06.2010, 13:49   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

capta1n просто показал на примере, как создать случайный цвет, у вас должны быть похожие классы на COLORREF , где есть параметры red,green,blue.
NiCola999 вне форума Ответить с цитированием
Старый 27.06.2010, 14:00   #7
260526052605
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 12
По умолчанию

у меня на массив цветов выдает:
Pen p[10];
error C3616: '10': a size cannot be specified in a __gc array declaration
260526052605 вне форума Ответить с цитированием
Старый 27.06.2010, 14:42   #8
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

вообще судя по:
Код:
 grBack->DrawRectangle(Pens::Red,i,j,i+1,j+ 1);
я не знаю какой тип имеет Pens::Red , пусть он будет типа Type - сами потом поменяете на нужный, тогда можно было написать так:
Код:
#include <time.h>
//.....
srand(time(NULL));
int rnd_color;  // номер цвета( 0- красный, 1- зеленый, 2- синий)
Type type_color;

for (int j = 0;j!=100; j++) {
   rnd_color = rand()%3;
   switch(rnd_color){
      case 0: 
       type_color = Pens::Red; break;
      case 1:
       type_color = Pens::Green; break;
      case 2:
       type_color = Pens::Blue; break;
  /* таким образом в type_color будет выбран случ. цвет из 3х
    теперь рисуем*/
  grBack->DrawRectangle(type_color, i, j, i+1, j+1); 
}
NiCola999 вне форума Ответить с цитированием
Старый 27.06.2010, 18:51   #9
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

COLORREF - вполне определенный тип, который юзается в MFC
RGB - вполне определенный макрос, который принимает 3 параметра - 3 градации цвета Red, Green, Blue - однобайтовые переменные
пиксель задается 24 битами
определены они в afxwin.h
для этого надо в свойствах проекта подключить MFC библиотеки
да, скорее я это просто как пример привел, но когда программировал под MFC только этим и пользовался
Цвет еще удобно задавать 16-ричным числом
0x0022FF - что-то типа того, тоже RGB
capta1n вне форума Ответить с цитированием
Старый 28.06.2010, 10:08   #10
260526052605
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 12
По умолчанию

про шестнадцатеричное знаю, спасибо всем, заработало))
260526052605 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом можно изменять цвет фона и цвет шрифта в Label? jungle Win Api 17 21.09.2009 00:38
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05
случайный переход Naposaram PHP 10 01.02.2009 16:47
случайный вызов процедуры yulia Общие вопросы Delphi 8 20.10.2008 18:40
Случайный текст Reaction Общие вопросы Delphi 2 09.04.2008 15:01