Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменение толщины линии в MFC

15K
22 мая 2007 года
saypn
8 / / 29.05.2006
Такая смешная проблема: не могу изменить толщину линии при рисовании

CPen newPen;
newPen.CreatePen(PS_DASH,width,GetColor());

CGdiObject* pOldPen = pDC->SelectObject(&newPen);

pDC->Ellipse(GetRect());

pDC->SelectObject(pOldPen);

Насколько я понимаю, второй параметр при создании карандаша это
толщина. Проверял, в width приходит нужная толщина, однако даже при
подстановке туда любой константы (1, 2, 3, ...), эллипс рисуется с толщиной линии
равной 1.
Было замечено, что при подстановке в width больших значений, напр. 40, 100, 1000, толщина всё-таки начинает менятся. В чем же дело?

Спасибо.
370
23 мая 2007 года
koval
443 / / 29.08.2005
CPen newPen;
CRect newRect(0,0,100,100);
newPen.CreatePen(PS_SOLID, 10, RGB(255,0,0));
pDC->SelectObject(newPen);
pDC->Ellipse(newRect);
pDC->SelectStockObject(BLACK_BRUSH);

100% рабочий код проверял сам!

MSDN 2004 april: For the first version of CreatePen, if this value is 0, the width in device units is always 1 pixel, regardless of the mapping mode.

For the second version of CreatePen, if nPenStyle is PS_GEOMETRIC, the width is given in logical units. If nPenStyle is PS_COSMETIC, the width must be set to 1.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог