Re[3]: Создать меню динамически
От: oleg3d  
Дата: 21.03.07 13:11
Оценка: 2 (1)
Пождойдет...
void CAppList::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu){
Сюда пишем инсерт итем делете
на подобие (как у меня)
pPopupMenu->EnableMenuItem(IDM_DETAIL, enable ? MF_ENABLED : MF_GRAYED);
}


Здравствуйте, Niswn, Вы писали:

N>Так не подойдет, к сожалению. Я не знаю изначально сколько у меня пунков меню и не знаю их названия. Это все возвращается специальными функциями, поэтому жестко прописать в ресурсы я их не могу. Надо сформировать меню динамически.


N>Здравствуйте, oleg3d, Вы писали:


O>>У меня так работает

O>>BOOL CAppList::OnInitDialog(){
O>> CMyDialog::OnInitDialog();

O>> if (!m_dlgCommandBar.Create(this) ||

O>> !m_dlgCommandBar.InsertMenuBar(IDR_APPLIST))
O>> {
O>> MessageBox(L"can not create menu",0,0);
O>> return FALSE; // fail to create
O>> }

O>> List.init();

O>> pExeLock = new ExeLock();
O>> LoadPrograms();

O>> return TRUE;

O>>}


O>>IDR_APPLIST MENU DISCARDABLE

O>>BEGIN
O>> MENUITEM "Ok", IDM_OK
O>> POPUP "Option"
O>> BEGIN
O>> MENUITEM "Add", IDM_ADD
O>> MENUITEM "Delete", IDM_DELETE
O>> MENUITEM "Detail", IDM_DETAIL
O>> END
O>>END

O>>IDR_APPLIST SHMENUBAR DISCARDABLE

O>>BEGIN
O>> IDR_APPLIST, 2,
O>> I_IMAGENONE, IDM_OK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_OK, 0, NOMENU,
O>> I_IMAGENONE, IDM_OPTION, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE | TBSTYLE_DROPDOWN, IDS_OPTION, 0, 1,
O>>END
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.