Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу рисовать в диалоге, Выводить линии и bitmap-ы 
V
    Опции темы
Sphinx
Дата 6.8.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Надо в части диалоговова окна выводить графики и т.п.
Пробовал работать как с обычным окном - неполучается.
Какие особенности при рисовании в диалоге? Если можно, примерчик.
PM MAIL   Вверх
Andrey44
Дата 6.8.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

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



Обрабатывай WM_PAINT


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Sphinx
Дата 6.8.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Andrey44 @  6.8.2008,  10:16 Найти цитируемый пост)
Обрабатывай WM_PAINT 

Пробовал - виснет.
Код

    case WM_PAINT:
  hDC=BeginPaint(hDlg,ps);
  MoveToEx(hDC,100,100);
  LineTo(hDC,300,300);
  EndPaint(hDlg,ps);
  break;


PM MAIL   Вверх
mekhanikus
Дата 6.8.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вольноопределяющийся
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 16.6.2008
Где: Спасск-Дальний

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



Как определяеш ps ?

Может попробовать так:

Код

 case WM_PAINT:
  hDC=BeginPaint(hDlg,&ps);
  MoveToEx(hDC,100,100);
  LineTo(hDC,300,300);
  EndPaint(hDlg,&ps);
  break;


BeginPaint в качестве второго аргумента требует указатель на структуру PAINTSTRUCT.

Это сообщение отредактировал(а) mekhanikus - 6.8.2008, 11:51
PM MAIL   Вверх
Sphinx
Дата 6.8.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ура!!!
Нашел, заработало...
В ресурсах область в которой собираюсь рисовать определил как:
 CONTROL "", IDC_STATICBITMAP1, "static", SS_OWNERDRAW | WS_CHILD | WS_VISIBLE, 20, 80, 332, 136
В диалоге обрабатываю сообщение WM_DRAWITEM:
wParam содержит идентификатор контрола
lParam - указатель на DRAWITEMSTRUCT из которой берем хандл контекста и с его помощью рисуем.

Это решение было найдено интуитивно, поэтому нет полной уверености в правильности, но работает. Если у кого есть другой вариант, буду рад.
PM MAIL   Вверх
mekhanikus
Дата 7.8.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вольноопределяющийся
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 16.6.2008
Где: Спасск-Дальний

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



Цитата(Sphinx @ 6.8.2008,  12:44)
Это решение было найдено интуитивно, поэтому нет полной уверености в правильности, но работает. Если у кого есть другой вариант, буду рад.

Вот пример из книги Финогенова К.Г. "Win32 основы программирования",
никаких статиков, и все рисуется.
Проверено!
Одна из эпициклоид добавлена мной.
Дерзай!

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Epicikloid.zip 1,15 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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