关于菜单重绘的消息响应 求助:我想重绘主菜单,在初始化的时候用ModifyMenu()函数把菜单设成了MF_OWNERDRAW属性,并且在CMainFrame里面添加了WM_MEASUREITEM和WM_DRAWITEM的消息响应来重绘菜单,我设置了断点,但是每次都没执行这两消息响应函数,这是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 新建CMyMenu类,在View.cpp添加变量m_menu。OnInitialUpdate()中添加m_menu.LoadMenu(IDR_MAINFRAME);m_menu.ChangeMenuItem(); //设置所有选项为MF_OWNERDRAW重载WM_MEASUREITEM,WM_DRAWITEM函数中添加m_menu..DrawItem(lpDrawItemStruct);m_menu..MeasureItem(lpMeasureItemStruct); http://wenku.baidu.com/view/7d02ddd784254b35eefd3417.html MDI?在哪里添加的ModifyMenu? 是不是菜单变成了文档的菜单? MDI和SDI我都试过,刚开始我放在一个按钮的响应函数里面的,不行,后来我就放在LoadFrame、OnCreate函数里面,还是不行。我用这个函数来设置属性的:void CNewMenu::ChangeMenuItem(CMenu* pMenu){ int itemCount=pMenu->GetMenuItemCount(); for(int i=0;i<itemCount;i++) { CString *pText=new CString; UINT itemID=pMenu->GetMenuItemID(i);//获取菜单项ID号 pMenu->GetMenuString(i,*pText,MF_BYPOSITION);//获取菜单文本 //ModifyMenu函数最后一个参数对应DRAWITEMSTRUCT结构里的itemData变量 pMenu->ModifyMenu(i,MF_OWNERDRAW|MF_BYPOSITION|MF_STRING,itemID,(LPCTSTR)pText); if(itemID==-1)//如果是一个弹出式菜单 { ChangeMenuItem(pMenu->GetSubMenu(i)); } } } 一个关于傅里叶变换的问题 mfc语言转化问题 bmp转换到PNG,背景变为透明? 高手帮助:图片上下翻页的特效问题 关于 AfxBeginThread(RUNTIME_CLASS(***)) 创建用户界面线程的问题 怎么将jpg转化为emf文件? windbg 的 !gle 命令显示的结果 和 GetLastError 不一致 如何确定一个文件目录是否存在? 我用MFC向导生成一个ActiveX,编译的时候,它会注册。怎样去除这个注册? 莱鸟的提问 求代码 一个多方聊天室软件 最好有服务器端 客户端分开的 在线等 在OnPaint()函数中DrawText()的一道难题
m_menu.LoadMenu(IDR_MAINFRAME);
m_menu.ChangeMenuItem(); //设置所有选项为MF_OWNERDRAW重载WM_MEASUREITEM,WM_DRAWITEM函数中添加
m_menu..DrawItem(lpDrawItemStruct);
m_menu..MeasureItem(lpMeasureItemStruct);
void CNewMenu::ChangeMenuItem(CMenu* pMenu)
{
int itemCount=pMenu->GetMenuItemCount();
for(int i=0;i<itemCount;i++)
{
CString *pText=new CString;
UINT itemID=pMenu->GetMenuItemID(i);//获取菜单项ID号
pMenu->GetMenuString(i,*pText,MF_BYPOSITION);//获取菜单文本 //ModifyMenu函数最后一个参数对应DRAWITEMSTRUCT结构里的itemData变量
pMenu->ModifyMenu(i,MF_OWNERDRAW|MF_BYPOSITION|MF_STRING,itemID,(LPCTSTR)pText);
if(itemID==-1)//如果是一个弹出式菜单
{
ChangeMenuItem(pMenu->GetSubMenu(i));
}
}
}