Поиск:

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


Шустрый
*


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

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



Цитата(BBC @ 17.4.2005, 16:50)
Lion : ....
// Это я тоже пробовал еще до вопроса в форуме. А у вас работает?

иконку отображает, но при сворачивании окна она исчезает.
.....

Да у меня работает и иконка не исчезает, при минимизации или перекрытия окна другим. Ставить можно в ЛЮБОМ месте (и с точки зрения MFC это правильно). Могу выслать работающий пример. smile

Я честно говоря вообще не понимаю, почему если у вас есть элемент CStatic в котором вы хотите менять иконки вам настойчиво советую приводить к указателю на CWnd? В общем это конечно не так важно, но для вашей задачи CStatic удобнее.


PM MAIL   Вверх
BBC
Дата 20.4.2005, 22:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемые господа - программисты!
Я уже устал писать один и тот же код-

ни:

HICON hIcon=::AfxGetApp()->LoadIcon("Ring");
CStatic *pStat=(CStatic *)GetDlgItem(IDC_ANIMATE);
pStat->SetIcon(hIcon);

ни:

CWnd*Wnd=(CWnd*)GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), TRUE);

ни:

CWnd*Wnd=(CWnd*)GetDlgItem(IDC_ANIMATE);
Wnd->SetIcon(AfxGetApp()->LoadIcon("Ring"), FALSE);

иконку на IDC_ANIMATE не У С Т А Н А В Л И В А Ю Т!

А :

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

УСТАНАВЛИВАЕТ! Почему?

  Вверх
Lion
Дата 21.4.2005, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(BBC @ 20.4.2005, 19:12)
Уважаемые господа - программисты!

Уважаемый BBC так вам выслать код или нет? smile
Цитата(BBC @ 20.4.2005, 19:12)

А :

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

УСТАНАВЛИВАЕТ!  Почему?


А "устанавливает" потому, что вы просто единократно получив контекст окна отрисовываете в нем иконку. И вполне логично, что при повторном перерисовывании окна (случай свертывания или частичного перекрытия окна) стандартная функция отрисовки рисует только то, что она знает о контролах на диалоге. На месте нарисованной вами иконки рисует бэкграунд диалога, т.к. CStatic в вашем случае пустой. smile
PM MAIL   Вверх
BBC
Дата 22.4.2005, 19:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если можно:[email protected]
DrawIcon() понятно. А SetIcon() почему не ставит?
  Вверх
Lion
Дата 25.4.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(BBC @ 22.4.2005, 16:09)
Если можно:[email protected]
DrawIcon() понятно. А SetIcon() почему не ставит?


Ну это мне объяснить сложно т.к. у меня ставит. smile
Код после обеда вышлю.
PM MAIL   Вверх
BBC
Дата 27.4.2005, 23:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемый Lion !
Действительно с CStatic работает!
И даже код которыя я пробовал и писал выше:

HICON hIcon=::AfxGetApp()->LoadIcon("Ring");
CStatic *pStat=(CStatic *)GetDlgItem(IDC_ANIMATE);
pStat->SetIcon(hIcon);

- сейчас прекрасно справляется с этой чертовой иконкой. Глюки какие то........... Косят, сволочи,
ряды наши.
Спасибо за помощь!
  Вверх
Lion
Дата 28.4.2005, 05:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(BBC @ 27.4.2005, 20:05)
Уважаемый Lion !
...............................
Спасибо за помощь!

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


 




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


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

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