Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Виртуальное окно в VS 2005, Проблема с виртуальным окном 
:(
    Опции темы
AntiInt
Дата 2.7.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Проблема в следующем:когда я писал однооконное приложение без использования визардов с нуля,мне было  ясно как создать виртуальное окно,а когда я попробовал сделать тоже,но используя визарды,студия создала файлы CMainFrame.h,CMainFrame.cpp,Example1.h(название приложения),Example1.cpp.Суть вопроса,куда в этих файлах что писать,что бы создать виртуальное окно.Тип приложения Single document.
PM MAIL   Вверх
Earnest
Дата 2.7.2009, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Что такое "аиртуальное окно"?
И вообще, не экономь на пробелах, и излагай яснее, читать тяжело.


--------------------
...
PM   Вверх
AntiInt
Дата 2.7.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ситуация такая , я рисую  что-то в окне , после того , как я сворачиваю и разворачиваю окно , изображение проподает. Метод борьбы с этим у Шилдта описан как "виртуальное окно", я в инете находил такое же название. Если я пишу с нуля окно , я могу это сделать , а вот когда визарды студии использую , то не знаю, куда что писать. Вот как бы вы с этим боролись?
PM MAIL   Вверх
Earnest
Дата 3.7.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Я Шилдта не читала, поэтому не знаю, что имеется в виду.
Опять же, непонятно, с чем бороться. Окно должно прорисовываться в ответ на сообщение WM_PAINT$ и ничего никуда не исчезает. В MFC этому соответствует обработчик OnPaint.



--------------------
...
PM   Вверх
AntiInt
Дата 3.7.2009, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделай так , что бы на  экран выводился , например , прямоугольник , потом сверни и разверни окно.Прямоугольник исчезнет , т.к. состояние пикселов нигде не запоминается. Что сделать , что бы картинка заново отрисовывалась, т.е. не исчезала.
PM MAIL   Вверх
serg405
Дата 3.7.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сохрани ее в CBitmap и перехвати OnPaint, в котором выводи сохраненный CBitmap на єкран.

А кстати где ты рисуеш триуголник? В какой функции, или ты просто береш где угодно DC окна и рисуеш?

Это сообщение отредактировал(а) serg405 - 3.7.2009, 09:25
PM MAIL   Вверх
Albor
Дата 3.7.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наверное виртуальным окном топикстартер называет контекст созданный в памяти из которого рисунок переносится в реальное окно.
PM MAIL ICQ   Вверх
Earnest
Дата 3.7.2009, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Да по барабану что откуда переносится. Главное, чтобы вывод в экранное окно происходил в OnPaint. И хоть сворачивай-разворачивай, изображение восстанавливается.
У тебя обработчик OnPaint есть?


--------------------
...
PM   Вверх
Albor
Дата 3.7.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Earnest, согласен с Вами. У него
Цитата(AntiInt @  2.7.2009,  15:05 Найти цитируемый пост)
Тип приложения Single document. 

Рисовать нужно в классе представления в ф-ции OnDraw, визард должен был создать её. Это, если нужно показать содержимое документа.

PM MAIL ICQ   Вверх
Earnest
Дата 3.7.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А, ну да, стандартно вид в OnDraw рисует. 


--------------------
...
PM   Вверх
AntiInt
Дата 5.7.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я так и делаю,созднаю битмап,в который вывожу все,что рисую,а по OnPaint() вывожу.
PM MAIL   Вверх
AntiInt
Дата 5.7.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно по-подробнее про функцию OnDraw()?Расскажите , пожалуйста , что она делает , как с её помошью выводить изображение?Заранее благодарен.
PM MAIL   Вверх
Albor
Дата 5.7.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AntiInt @  5.7.2009,  10:23 Найти цитируемый пост)
Можно по-подробнее про функцию OnDraw()?Расскажите , пожалуйста , что она делает , как с её помошью выводить изображение?Заранее благодарен. 

OnDraw в качестве входного параметра получает контекст для рисования. Рисуй в нём и всё будет тип-топ. Твоя картинка не пропадёт при сворачивании/разворачивании окна. Данная ф-ция для этого и предназначена.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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