Иконки в главном меню
От: Shang  
Дата: 26.05.05 11:18
Оценка:
Если кто знает, почему не получается воткнуть в главное меню программы иконки, буду признателен. (Как в офисе или финдовом шеле, когда туда интегрируют свои пункты Каспер, Рар и т.д)
Или может есть какой другой способ?


CBitmap m_Bitmap, m_Bitmap1;

m_Bitmap.LoadBitmap(IDB_BITMAP);
m_Bitmap1.LoadBitmap(IDB_BITMAP1);

CMenu* pMenu = GetMenu();
CMenu* pSubmenu = pMenu->GetSubMenu(1);
pSubmenu->SetMenuItemBitmaps(ID_FILE_OPEN, MF_BYCOMMAND, &m_Bitmap, &m_Bitmap1);

Не срабатывает.
Пример, можно, сказать с MSDN-а
Re: Иконки в главном меню
От: Shang  
Дата: 26.05.05 11:22
Оценка:
CMenu* pSubmenu = pMenu->GetSubMenu(1);

На номер подменю просьба не смотреть, единица просто с потолка воткнута
Re: Иконки в главном меню
От: VVV Россия  
Дата: 26.05.05 16:40
Оценка:
Здравствуйте, Shang, Вы писали:


S>
S>CBitmap m_Bitmap, m_Bitmap1;

S>m_Bitmap.LoadBitmap(IDB_BITMAP);
S>m_Bitmap1.LoadBitmap(IDB_BITMAP1);

S>CMenu* pMenu = GetMenu();
S>CMenu* pSubmenu = pMenu->GetSubMenu(1);
S>pSubmenu->SetMenuItemBitmaps(ID_FILE_OPEN, MF_BYCOMMAND, &m_Bitmap, &m_Bitmap1);
S>

S>Не срабатывает.
S>Пример, можно, сказать с MSDN-а

А m_Bitmap, m_Bitmap1 случаем не локальные переменные? Если локальные, то в деструкторе загруженные битмапки уничтожаются, а судя по описанию SetMenuItemBitmaps:

When the menu is destroyed, these bitmaps are not destroyed; it is up to the application to destroy them.

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

Решение: CBitmap m_Bitmap, m_Bitmap1; сделать переменными класса со временем жизни, большем чем меню.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.