Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CDialog, RedrawWindow 
:(
    Опции темы
BBC
Дата 17.3.2005, 08:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, если не лень! В CView перерисовка окна после, например, минимизации осуществляется в OnDraw() а в CDialog где???
  Вверх
Nastya
Дата 18.3.2005, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



OnPaint - перерисовка любого окна.
Прост В MFC когда приходить собщение WM_PAINT делается кое-что и вызывается OnDraw.
Если нужно обработать изменение размеров окна обрабатывай сообщение WM_SIZE.
Я правильно поняла вопрос ???


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Guest
Дата 18.3.2005, 17:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за подсказку, проблема вот вчем:
устанавливаю иконку на контрол

HICON HicRing=AfxGetApp()->LoadIcon("Ring");
CWnd*Wnd=AfxGetMainWnd()->GetDlgItem(IDC_ANIMATE);
CDC *pDC=Wnd->GetDC();
pDC->DrawIcon(0, 0,HicRing );
Wnd->ReleaseDC(pDC);
pDC->DeleteDC();

окно свернул, иконка исчезла
Устанавливать ее в OnPaint() ?
И почему не работает SetIcon(HicRing, TRUE); ?
  Вверх
Nastya
Дата 18.3.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



А я не вижу сдесь SetIcon?


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Coocky
Дата 18.3.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Цитата
устанавливаю иконку на контрол

Цитата
окно свернул, иконка исчезла

В первый раз слышу smile
Вообще ты все делаешь через CDC.А с диалогом это только OnPaint прокатывает.Так как сказала Настя,
Цитата
OnPaint - перерисовка любого окна.

Даже если ты его свернешь,закроешь другим -всегда будет перерисовка.
Ты или рисуй все в OnPaint(),или пользуйся методами класса,которые присоединяют иконку или изображение smile (Если таковые имеются)


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Guest
Дата 18.3.2005, 22:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я имел в виду вместо

/*CDC *pDC=Wnd->GetDC();
pDC->DrawIcon(0, 0,HicRing );
Wnd->ReleaseDC(pDC);
pDC->DeleteDC();*/

HICON HicRing=AfxGetApp()->LoadIcon("Ring");
CWnd*Wnd=AfxGetMainWnd()->GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(HicRing, TRUE); - не работает!!!

Я переодически меняю иконки в IDC_ANIMATE. При сворачивании окна они исчезают.
В OnPaint() их установку дублировать? Я пробывал - работает, но по моему с точки зрения
MFC это не совсем правильно. Как это предлагает делать МелкоСофт?
  Вверх
Coocky
Дата 18.3.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Цитата
IDC_ANIMATE

Насколько я понимаю это ID элемента,относящегося к классу СStatic?
А ну ка попробуй сделать это с кнопочкой

CButton*Wnd=(CButton*)GetDlgItem(MY_BUTTON);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE); -
Только кнопку не забудь создать smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Guest
Дата 19.3.2005, 15:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вообще то у меня IDC_ANIMATE - не StaticText а Picture, хотя со StaticText не работает тоже.
С кнопочкой проблем ни когда не было, только ей стиль Icon нельзя забывать ставить

CButton*Wnd=(CButton*)GetDlgItem(MY_BUTTON);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE);--работает, а

CWnd*Wnd=(CWnd*)GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE);--
не работает!!!

  Вверх
Coocky
Дата 20.3.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Дай мне время,ОК?Дам готовое...


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Guest
Дата 29.3.2005, 16:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну так почему же не работает
CWnd*Wnd=(CWnd*)GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE);????
  Вверх
knave
Дата 29.3.2005, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вью перерисовывать лучше всего в WM_ERASEBKGND - или чтото в этом духе.
Тогда нет никаких посторонних эффектов.

Это сообщение отредактировал(а) knave - 29.3.2005, 17:18


--------------------
С наилучшими пожеланиями !!!
PM MAIL ICQ   Вверх
Lion
Дата 12.4.2005, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А так:
Код

HICON    hIcon=::AfxGetApp()->LoadIcon(IDI_ICON2);
CStatic *pStat=(CStatic *)GetDlgItem(ID_MY_ICON);
pStat->SetIcon(hIcon);


У меня иконки при минимизации не исчезают.
PM MAIL   Вверх
Step
Дата 13.4.2005, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Guest @ 29.3.2005, 16:41)
Ну так почему же не работает
CWnd*Wnd=(CWnd*)GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE);????


главное правильно задать вопрос....

а впоросов два
1. работает или нет?
2. елси работает то почему не вижу...
чето на философию потянуло...


короче,

СWND устанавливает иконку и отображает ее на титле в левом углу если подходит формат
т.е. нужно поставить false
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), false); и если у этого окна есть титл то иконка измениться.....


сетикон работает всегда для всех производных от внд, вопрос в тому куда производный внд ее выводит....




--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
BBC
Дата 17.4.2005, 19:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сформулирую вопрос убого.
Как поставить иконку в необходимом мне месте диалогового окна. Только при ответах читайте,
что я уже делал выше, что бы не повторяться.

Step :
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), false);
//естественно пробовал, иконка не отображается

Lion :
HICON hIcon=::AfxGetApp()->LoadIcon(IDI_ICON2);
CStatic *pStat=(CStatic *)GetDlgItem(ID_MY_ICON);
pStat->SetIcon(hIcon);
// Это я тоже пробовал еще до вопроса в форуме. А у вас работает?

А вот код:

/*HICON HicRing=AfxGetApp()->LoadIcon("Ring");
CWnd*Wnd=AfxGetMainWnd()->GetDlgItem(IDC_ANIMATE);
CDC *pDC=Wnd->GetDC();
pDC->DrawIcon(0, 0,HicRing );
Wnd->ReleaseDC(pDC);
pDC->DeleteDC();*/

иконку отображает, но при сворачивании окна она исчезает. Как правильно ее установить с точки зрения MFC ? DrawIcon() в OnDraw() ?
Кстати, SetIcon() возвращает не 0, а иконки не видно.

  Вверх
Coocky
Дата 17.4.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Цитата
но при сворачивании окна она исчезает

При любой перерисовке окна вызывается OnPaint,в WM_PAINT.Так что там рисуй


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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