WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Рисование под MFC

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Рисование под MFC
Kosha опубликован 06-04-2001 23:05 MSK   Click Here to See the Profile for Kosha   Click Here to Email Kosha  
Народ! Подскажите, как разрешить ситуевину:
Есть диалогбар, и в нем нужно риал-таймом рисовать всякую всячину.

Так вот: как эту всячину в нем нарисовать? (Контрол какой, или просто какая-то работа с CDC?)
Желательно с фрагментом кода.
Заранее спасибки.

purpe опубликован 06-04-2001 23:57 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
я такое проделывал в CFormView :)

void CMyDialog::OnPaint()
{
CPaintDC dc(this);
dc.Ellipse(x1,y1,x2,y2) //рисуем элипс
dc.TextOut(x1,y1,strText); //выводим текст

dc.MoveTo(x1,y1); //передвигаемся в точку
dc.LineTo(x2,y2); //рисуем из этой точки линию

}


Поидее рисоваться должно прямо на диалоге :)

OlegO опубликован 07-04-2001 10:39 MSK     Click Here to See the Profile for OlegO  Click Here to Email OlegO     
как сказал purpe будет 100% работать и для Диалога.
работа идет через CDC как и для обычных окон.
только рисовать будет в Клиентской Области.
Kosha опубликован 07-04-2001 11:12 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Оно-то конечно, оно естественно.
Только вот не пашет. Вернее, официально, делает вид что пашет. А в реальности - не рисует.
Я создаю CPaintDC (в CView::OnUpdate) из взятого через GetParent() диалога класса СChildFrame. Все CWND проверял, все соответствует действительности. Пробовал и создавать CDC через GetDC/ReleaseDC, и все равно ;-(((((((
Kosha опубликован 07-04-2001 11:16 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
В смысле, не диалог класса CChildFrame, а в мемберах CChildFrame'а прописан
CDialogBar (какой-то-там-диалогбар);
Проверял для простого диалога (НЕ ДИАЛОГБАРА!) - работает ;-))))))
а для бара - не работает :-((((((
может, как-то я не так CPaintDC крэйтю?
Ars80 опубликован 07-11-2001 17:24 MSK     Click Here to See the Profile for Ars80  Click Here to Email Ars80     
Пиши вместо CPaintDC CClientDC :)
Kosha опубликован 07-11-2001 17:37 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
2Ars80: Ты не путай народ ;-)
Дата сообщений-то какая ;-)
maxvid опубликован 08-11-2001 06:31 MSK     Click Here to See the Profile for maxvid  Click Here to Email maxvid     
Слушайте, а после рисования может нужно вызвать
InvalidateRect(NULL);
чтоб обновилась клиентская область??
Или я что-то не понимаю
Kosha опубликован 08-11-2001 09:35 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Неа. Просто нужно взять грамотно и сделать.
В рисовании на диалогбаре надо осторожно все делать. Потом, нужно убрать на фиг флаг ERASEBACKGROUND или что-то в этом духе.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.