Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с рисованием 
:(
    Опции темы
tilser
Дата 22.2.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Итак, создан класс Cwin7 на основе базового класса CWnd.
Написана ф-ция
Код

void Cwin7::Draw(int a, int  b, int  c, int d)
{
    CPaintDC *pdc = new CPaintDC(this);
    pdc->Rectangle(a, b, c, d);
}

далее в оброботчик события OnBnClickedButton1 я пишу код
Код

Cwin7 *win = new Cwin7;
CRect R1;
GetClientRect(R1); 
R1.top = 10;
win->Create(NULL, NULL, WS_VISIBLE, R1, this, 0);
win->Draw(10, 10, 200, 200);
delete win;

прямоугольник рисуется и тут же исчезает.
Сильно не пинайте, я только учусь.
PM MAIL   Вверх
Sartorius
Дата 22.2.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



зачем окошко удаляешь?
PM MAIL ICQ   Вверх
Earnest
Дата 22.2.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Естественно: окно создалось, нарисовалось и удалилось, убрав все за собой.
Кроме того, приличные окна рисуются по получении OnPaint, а не когда захотят.


--------------------
...
PM   Вверх
tilser
Дата 22.2.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Цитата(Sartorius @  22.2.2007,  19:37 Найти цитируемый пост)
зачем окошко удаляешь? 

Действительно. Как раз на форум заходил, чтоб написать, что проблема исчерпана. smile 
Теперь такой возникает вопрос.
Как в сабжевом окошке(тобишь прямоугольнике) нарисовать еще этак 256 таких же, чтоб границы их были видны?
PM MAIL   Вверх
Sartorius
Дата 22.2.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



ну очевидно линиями smile  15 горизонтальных и 15 вертикальных
PM MAIL ICQ   Вверх
tilser
Дата 22.2.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Цитата(Sartorius @  22.2.2007,  19:51 Найти цитируемый пост)
ну очевидно линиями   15 горизонтальных и 15 вертикальных 

 smile  А Rectangle`ами нельзя?
И еще, как так Rectangle цветом залить?
Спасибо smile 

PM MAIL   Вверх
Earnest
Дата 22.2.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Выбрать в контекст кисть.


--------------------
...
PM   Вверх
MoZy
  Дата 22.2.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 4.6.2006

Репутация: нет
Всего: 0



tilser, может синтаксис не тот, но:


Код

            HPEN pen;
            LOGBRUSH lbr;
            
            pen=CreatePen(PS_NULL,0,0);//Без границ
            SelectObject(hdc,pen);
            
            lbr.lbColor=RGB(255,170,0);
            lbr.lbStyle=BS_SOLID;//Полностью заливается оранжевым
            my_brush = CreateBrushIndirect(&lbr);
            SelectObject(hdc,my_brush);
            
            Rectangle(hdc,a,b,c,d);
            DeleteObject(my_brush);
            
            lbr.lbStyle=BS_NULL; //Внутри пусто
            my_brush = CreateBrushIndirect(&lbr);
            SelectObject(hdc,my_brush);
            
            DeleteObject(pen);
            pen=CreatePen(PS_SOLID,1,RGB(255,255,255));//Границы белые
            SelectObject(hdc,pen);
            
            Rectangle(hdc,x,y,xr,yr);
            
            DeleteObject(pen);
            DeleteObject(my_brush);

      

}{отя линиями тоже можно  smile 

Это сообщение отредактировал(а) MoZy - 22.2.2007, 21:10
--------------------
Experimentia est optima rerum magistra
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.