Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Иконка на кнопке


Автор: ShurikA 25.7.2006, 18:47
Когда создаётся кнопка через визард (VS2005), в настройке кнопки есть "Icon". 
На сколько я понимаю это даёт возможность присобачить иконку к кнопке.  Как? 

Автор: tigger 26.7.2006, 00:24
Используй кнопка.SetIcon( ::LoadIcon(NULL, IDI_QUESTION) ); 

Автор: ShurikA 26.7.2006, 09:48
Цитата(tigger @  25.7.2006,  23:24 Найти цитируемый пост)
Используй кнопка.SetIcon( ::LoadIcon(NULL, IDI_QUESTION) ); 

дге? Она же создана визардом 

Автор: ShurikA 26.7.2006, 11:00
Попробовал я сделать вот так:
Код

(CButton *) m_wControlBar.GetDlgItem(IDC_BUTTON_TEXT)->SetIcon(::LoadIcon(NULL, (LPCSTR)IDI_ICON1), FALSE);

не работает... кнопка остаётся пустая 

Автор: Pulse69 26.7.2006, 12:38
Вот тут может быть проблема.

Код

::LoadIcon(NULL, (LPCSTR)IDI_ICON1)


Если в LoadIcon первый параметр - NULL, то загружается иконка не из ресурсов, а стандартная. Насколько я помню, стандартной иконки IDI_ICON1 нет.
Попробуй написать LoadIcon( AfxGetInstanceHandle(),  MAKEINTRESOURCE( IDI_ICON1) ) 

Автор: ShurikA 26.7.2006, 13:32
Цитата(Pulse69 @  26.7.2006,  11:38 Найти цитируемый пост)
LoadIcon( AfxGetInstanceHandle(),  MAKEINTRESOURCE( IDI_ICON1) ) 

Тоже самое... 

Автор: Rapalex 26.7.2006, 14:52
Свои иконки нужно грузить так:
Код

AfxGetApp()->LoadIcon(IDI_ICON1);
 

Автор: ShurikA 26.7.2006, 15:09
Так тоже не работает:
Код

HICON m_hIcon;
m_hIcon = AfxGetApp()->LoadIconA(IDI_ICON1);
(CButton *) m_wControlBar.GetDlgItem(IDC_BUTTON_TEXT)->SetIcon(m_hIcon, FALSE);
  

Автор: Pulse69 27.7.2006, 04:25
А у меня вот так работает

Код

    ::SetWindowLong( m_MyBtn.GetSafeHwnd(), 
        GWL_STYLE, 
        ::GetWindowLong( m_MyBtn.GetSafeHwnd(),GWL_STYLE) | BS_ICON );
     m_MyBtn.SetIcon( ::LoadIcon( NULL, IDI_QUESTION ) );


SetButtonStyle что-то не пашет. 

Автор: ShurikA 27.7.2006, 12:56
Так ладно, давайте по другому:
У кнопки можно установить ownerdraw, при этом кнопка просто пропадает.
Как дальше с этим можно работать?

и ещё один вопрос:
Код

(CButton *) m_wControlBar.GetDlgItem(IDC_BUTTON_TEXT)

правильный ли это способ получить обьект кнопки? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)