自定义菜单 的什么成员函数里 是不是数字的 最好给我发过一个改了的
发表在C语言图书答疑 2012-05-16
是否精华
版块置顶:
自定义菜单     的什么成员函数里    是不是数字的   最好给我发过一个改了的  给发个能明白 的样子
分享到:
精彩评论 1
C语言
学分:0 LV1
TA的每日心情
无聊
2021-11-12 22:00:04
2012-05-19
沙发
自定义菜单元类在对话框程序中的使用:
新建一个对话框程序,把custommenu.cpp,custommenu.h复制到工程目录下,在文件视图中添加这两个文件,这样类视图中就可以看见这个类了。
任意设计一个菜单元资源,在设计视图中为对话框添加菜单
在主对话框中加声明一个变量 
CCustomMenu m_menu;
在主对话框的OnInitDialog中加入
m_menu.AttatchMenu(GetMenu()->GetSafeHmenu());
m_menu.SetMenuItemInfo(&m_menu);
在主对话框中为消息WM_DRAWITEM和WM_MEASUREITEM添加消息响应函数
代码如下:
void CA1Dlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
{
// TODO: Add your message handler code here and/or call default
m_menu.MeasureItem(lpMeasureItemStruct);
CDialog::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}

void CA1Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
// TODO: Add your message handler code here and/or call default
m_menu.DrawItem(lpDrawItemStruct);
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
这样就可以显示美观菜单了


自定义菜单元类在文档视图程序中的使用:
新建文档视图程序,把custommenu.cpp,custommenu.h复制到工程目录下
在框架类中加声明一个变量 
CCustomMenu m_Menu;
在框架类的OnCreate函数后加入:
m_Menu.AttatchMenu(GetMenu()->GetSafeHmenu());
m_Menu.SetMenuItemInfo(&m_Menu);
下面要自定义两个消息WM_DRAWITEM和WM_MEASUREITEM响应函数
在框架类的头文件中声明函数
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
在框架类的源文件中加入
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_DRAWITEM()
ON_WM_MEASUREITEM()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

在框架类的源文件中加入函数实现
void CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
m_Menu.DrawItem(lpDrawItemStruct);
CFrameWnd::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
{
m_Menu.MeasureItem(lpMeasureItemStruct);
CFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}

如果改变菜单宽度,在自定义菜单类的MeasureItem方法中
lpStruct->itemHeight = DEFAULTHEIGHT;
lpStruct->itemWidth = DEFAULTWIDTH;
如果还有问题,请换一本更基础的书吧
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照