![]() |
|
|
![]()
|
|
| AntiInt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Проблема в следующем:когда я писал однооконное приложение без использования визардов с нуля,мне было ясно как создать виртуальное окно,а когда я попробовал сделать тоже,но используя визарды,студия создала файлы CMainFrame.h,CMainFrame.cpp,Example1.h(название приложения),Example1.cpp.Суть вопроса,куда в этих файлах что писать,что бы создать виртуальное окно.Тип приложения Single document.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Что такое "аиртуальное окно"?
И вообще, не экономь на пробелах, и излагай яснее, читать тяжело. -------------------- ... |
|||
|
||||
| AntiInt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Ситуация такая , я рисую что-то в окне , после того , как я сворачиваю и разворачиваю окно , изображение проподает. Метод борьбы с этим у Шилдта описан как "виртуальное окно", я в инете находил такое же название. Если я пишу с нуля окно , я могу это сделать , а вот когда визарды студии использую , то не знаю, куда что писать. Вот как бы вы с этим боролись?
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Я Шилдта не читала, поэтому не знаю, что имеется в виду.
Опять же, непонятно, с чем бороться. Окно должно прорисовываться в ответ на сообщение WM_PAINT$ и ничего никуда не исчезает. В MFC этому соответствует обработчик OnPaint. -------------------- ... |
|||
|
||||
| AntiInt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Сделай так , что бы на экран выводился , например , прямоугольник , потом сверни и разверни окно.Прямоугольник исчезнет , т.к. состояние пикселов нигде не запоминается. Что сделать , что бы картинка заново отрисовывалась, т.е. не исчезала.
|
|||
|
||||
| serg405 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 12.6.2008 Репутация: нет Всего: нет |
Сохрани ее в CBitmap и перехвати OnPaint, в котором выводи сохраненный CBitmap на єкран.
А кстати где ты рисуеш триуголник? В какой функции, или ты просто береш где угодно DC окна и рисуеш? Это сообщение отредактировал(а) serg405 - 3.7.2009, 09:25 |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Наверное виртуальным окном топикстартер называет контекст созданный в памяти из которого рисунок переносится в реальное окно.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да по барабану что откуда переносится. Главное, чтобы вывод в экранное окно происходил в OnPaint. И хоть сворачивай-разворачивай, изображение восстанавливается.
У тебя обработчик OnPaint есть? -------------------- ... |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
||||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А, ну да, стандартно вид в OnDraw рисует.
-------------------- ... |
|||
|
||||
| AntiInt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Я так и делаю,созднаю битмап,в который вывожу все,что рисую,а по OnPaint() вывожу.
|
|||
|
||||
| AntiInt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Можно по-подробнее про функцию OnDraw()?Расскажите , пожалуйста , что она делает , как с её помошью выводить изображение?Заранее благодарен.
|
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
OnDraw в качестве входного параметра получает контекст для рисования. Рисуй в нём и всё будет тип-топ. Твоя картинка не пропадёт при сворачивании/разворачивании окна. Данная ф-ция для этого и предназначена. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |