Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование в MFC, Создание поля  
V
    Опции темы
Vaz007
Дата 23.2.2013, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

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



Доброй ночи. Нужна помощь в рисовании)) (Обычное MFC приложение dialog-based)
Я рисую просто поле линиями:
Код

void CWin::WinPaint( )
{
...
double cur_w = 0;
    double cur_h = 0;
    int w = 896;
    int h = 704;

    for(int i=1;i<66;++i)
    {
        Line(&DC,cur_w,0,cur_w,h);
        Line(&DC,0,cur_h,w,cur_h);
        cur_w+=w/64;
        cur_h+=h/64;
    }
...
} 

Нужна возможность закрашивания клеток поля . При рисовании линиями , пытаюсь закрасить поля :
Код


       CRect A_Rect[200];
    int cur_x,cur_y,n,m;
    cur_x=cur_y =1;
    n = m =w/64;
    for(int i =1;i<200;++i)
    {
    A_Rect[i].SetRect(cur_x,cur_y,n,m);
    cur_x +=w/64;
    if(i%65 ==0)
    {
        cur_y+=h/64;
        cur_x=0;
    }
    
    DC.FillRgn(A_Rect[i],&A_Br);
    }  // но заодно закрашиваются границы поля


Подскажите пожалуйста,как лучше реализовать рисование поля определенного размера  , и как раскрашивать нужные ячейки ,не затрагивая границ поля.



Это сообщение отредактировал(а) Vaz007 - 23.2.2013, 12:38
PM MAIL Jabber   Вверх
Earnest
Дата 25.2.2013, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Прямоугольники лучше рисовать прямоугольниками, а не регионами: FillRectangle, DrawRectangle. Последняя может одновременно рисовать границы заданным пером. Если границы нужно рисовать разными перьями, рисуй их сверху отдельно. Пытаться закрасить только внутренность, не трогая границ - муторно: нужно учитывать толщину линии, уменьшая закрашиваемую область, а при толстых перьях нужно еще знать, как именно позиционируется линия. И зачем весь этот геморрой, когда проще нарисовать границу еще раз поверх заливки.


--------------------
...
PM   Вверх
Vaz007
Дата 25.2.2013, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

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



Earnest, спасибо большое.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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