社区
界面
帖子详情
哪位大虾能给个SDK下自画菜单的完整例子啊,MSDN上的不完整啊?
haroldzhh
2006-02-24 04:33:40
MSDN上的例子不完整啊,弄不出来啊
多谢各位啦!!!!!
...全文
181
16
打赏
收藏
哪位大虾能给个SDK下自画菜单的完整例子啊,MSDN上的不完整啊?
MSDN上的例子不完整啊,弄不出来啊 多谢各位啦!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haroldzhh
2006-03-10
打赏
举报
回复
现在问题解决了,就是因为在填写MENUITEMINFO的时候少了一句
mii.cbSize = sizeof(MENUITEMINFO);
我看msdn上也没写嘛,所以就没写,看来不写还是不行啊
多谢各位回帖的同仁了!!!!!!!!
haroldzhh
2006-03-08
打赏
举报
回复
to iswjh(仁者无敌)
我按照你的程序,模仿着写了一个,去掉了菜单项左边的位图操作,可是怎么运行出来会没什么反映呢,还是原来的样子。自画个菜单怎么就这么费尽呢,msdn里面自画的部分我都看了无数遍啦,哎哟,烦啊
我想麻烦你再跟我说一说自画菜单的具体步骤,我看msdn上说的基本上就是填写MENUITEMINFO 结构,SetMenuItemInfo。然后处理两个消息WM_MEASUREITEM,WM_DRAWITEM,一个设长宽,一个开始画
难啊!!!!!!!!!!
haroldzhh
2006-03-08
打赏
举报
回复
希望大家来帮忙啊!!!!!
iswjh
2006-03-07
打赏
举报
回复
int CMainFrame::OnMeasureItem(WPARAM wParam,LPARAM lParam)
{
MEASUREITEMSTRUCT* lpmis=(MEASUREITEMSTRUCT*)lParam;
if(lpmis!=NULL)
{
if(lpmis->CtlType==ODT_MENU)
{
CustMenuItemData* lpmid;
lpmid=(CustMenuItemData*)lpmis->itemData;
if(lpmid->bIsTop)
{
if(lpmid->nPos==2 || lpmid->nPos==4)
lpmis->itemWidth=40;
else
lpmis->itemWidth=60;
lpmis->itemHeight=22;
}
else
{ lpmis->itemWidth=160;
if(lpmis->itemID==0)
lpmis->itemHeight=3;
else
lpmis->itemHeight=22;
}
return TRUE;
}
}
return FALSE;
}
int CMainFrame::OnDrawItem(WPARAM wParam,LPARAM lParam)
{
HBRUSH hbr=NULL,hbrLeft=NULL,hbrSel=NULL,hbrOrg=NULL;
HICON hIcon=NULL;
HFONT hfOrg=NULL;
RECT rc;
DRAWITEMSTRUCT* lpdis=(DRAWITEMSTRUCT*)lParam;
if(lpdis!=NULL)
{
if(lpdis->CtlType==ODT_MENU)
{
//Menu item data
CustMenuItemData* lpmid;
lpmid=(CustMenuItemData*)lpdis->itemData;
//Fill entire menu item
if(lpmid->bIsTop==FALSE)
{
hbr=CreateSolidBrush(RGB(249,248,247));
FillRect(lpdis->hDC,&lpdis->rcItem,hbr);
DeleteObject(hbr);
}
else
{
FillRect(lpdis->hDC,&lpdis->rcItem,GetSysColorBrush(COLOR_BTNFACE));
}
//Fill child menu item left
if(lpmid->bIsTop==FALSE)
{
hbrLeft=CreateSolidBrush(RGB(219,216,209));
CopyRect(&rc,&lpdis->rcItem);
rc.right=rc.left+20;
FillRect(lpdis->hDC,&rc,hbrLeft);
DeleteObject(hbrLeft);
}
//Draw separator
if(lpdis->itemID==0 && lpmid->bIsTop==FALSE)
{
HPEN hpen,hpenOrg;
hpen=CreatePen(PS_SOLID,1,RGB(166,166,166));
hpenOrg=(HPEN)SelectObject(lpdis->hDC,hpen);
MoveToEx(lpdis->hDC,24,lpdis->rcItem.top+1,NULL);
LineTo(lpdis->hDC,lpdis->rcItem.right,lpdis->rcItem.top+1);
SelectObject(lpdis->hDC,hpenOrg);
DeleteObject(hpen);
return TRUE;
}
SetBkMode(lpdis->hDC,TRANSPARENT);
CopyRect(&rc,&lpdis->rcItem);
//Draw child menu left icon
if(lpmid->bIsTop==FALSE)
{
switch(lpdis->itemID)
{
case IDM_COMMON_REG:
{
if(lpdis->itemState & ODS_DISABLED)
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_DISABLED_REGISTER));
else
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_REGISTER));
}
break;
case IDM_COMMON_CHARGE:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_CHARGE));
}
break;
case IDM_COMMON_RETURN:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_RETURN));
}
break;
case IDM_COMMON_CHANGEDRUG:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_CHANGEDRUG));
}
break;
case IDM_QUERY_CHARRF:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_CHARRF));
}
break;
case IDM_QUERY_CHARSTAT:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_CHARSTAT));
}
break;
case IDM_QUERY_INVOICE:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_INVOICE));
}
break;
case IDM_QUERY_DOCWORK:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_DOCTORWORK));
}
break;
case IDM_WINDOW_CLOSEALL:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_CLOSEALL));
}
break;
case IDM_SYSCFG_IME:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_IME));
}
break;
case IDM_SYSCFG_CODE:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_QUERYCODE));
}
break;
case IDM_HELP_ABOUT:
{
hIcon=LoadIcon(app.m_hInstance,MAKEINTRESOURCE(IDI_FRAME));
}
}
if(hIcon!=NULL)
DrawIconEx(lpdis->hDC,lpdis->rcItem.left+2,lpdis->rcItem.top+2,hIcon,16,16,0,NULL,DI_NORMAL);
lpdis->rcItem.left=24;//Reserve for draw icon
}
UINT nTextFlag;
if(lpmid->bIsTop)
{
nTextFlag=DT_CENTER | DT_VCENTER | DT_SINGLELINE;
}
else
{
nTextFlag=DT_LEFT | DT_VCENTER | DT_SINGLELINE;
}
hfOrg=(HFONT)SelectObject(lpdis->hDC,m_hfMenuItem);
if(lpdis->itemState & ODS_DISABLED)
SetTextColor(lpdis->hDC,RGB(219,216,209));
DrawText(lpdis->hDC,lpmid->szText,-1,&lpdis->rcItem,nTextFlag);
SetTextColor(lpdis->hDC,RGB(0,0,0));
SelectObject(lpdis->hDC,hfOrg);
if(lpdis->itemState & ODS_SELECTED && !(lpdis->itemState & ODS_DISABLED))
{
//Draw select item bar
int nROP;
nROP=SetROP2(lpdis->hDC,R2_MASKPEN);
lpdis->rcItem.left=rc.left;
CopyRect(&rc,&lpdis->rcItem);
hbrSel=CreateSolidBrush(RGB(182,189,210));
hbrOrg=(HBRUSH)SelectObject(lpdis->hDC,hbrSel);
Rectangle(lpdis->hDC,rc.left,rc.top,rc.right,rc.bottom);
SelectObject(lpdis->hDC,hbrOrg);
DeleteObject(hbrSel);
SetROP2(lpdis->hDC,nROP);
}
SetBkMode(lpdis->hDC,OPAQUE);
return TRUE;
}
}
return FALSE;
}
这是我写的一段代码,用的是SDK
bohlee
2006-03-07
打赏
举报
回复
我就不多此一举了
haroldzhh
2006-03-03
打赏
举报
回复
我顶啊
haroldzhh
2006-03-02
打赏
举报
回复
楼上的,我的邮箱是marlborozhh@yahoo.com.cn或者marlborozhh@hotmail.com
haroldzhh
2006-03-02
打赏
举报
回复
最好能是xp风格的
chenyulin
2006-03-01
打赏
举报
回复
邮箱
haroldzhh
2006-03-01
打赏
举报
回复
我顶
haroldzhh
2006-02-28
打赏
举报
回复
自己顶
lisypro
2006-02-28
打赏
举报
回复
www.pudn.com
haroldzhh
2006-02-24
打赏
举报
回复
有用c实现的吗,不要c++的啊
wangk
2006-02-24
打赏
举报
回复
http://www.vckbase.com/document/viewdoc/?id=1339
wangk
2006-02-24
打赏
举报
回复
http://www.vckbase.com/document/viewdoc/?id=537
http://www.vckbase.com/document/viewdoc/?id=1583
C# For Unity系列之入门篇
有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“
大虾
”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:...
界面(1):对话框和
菜单
打印和按钮等杂项
Q请教高手,图形对话框的问题T我做了一个图象的界面,对话框的,在OnPaint中 画上背景图案,然后用Invalidate 方法刷新每个控件,但是控件并没有完全显示出来,特别是CCtrlList 等控件,滚动条有时候显示不出来,...
基础
各位兄弟,在
SDK
编程中如果实现窗口分割呢?请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?高分请教如何限制程序运行的方法?求助:通过编程DirectX抓屏-----...
链接:
MSDN
UserNet等
Q我想知道如何在VC中实现可塌陷的PanelBar界面(类似于OutlookBar)? T可塌陷的PanelBar界面比outlookbar更有吸引力,Windows XP左边的导航工具面版就是...我还是想用C++,实现这种界面,而且我不喜欢附带额外的动
HTML编程2
T现在有一个问题,我使用了CHtmlView类,但是不能得到CHtmlView滚动条事件。请问那位
大虾
有好的方法,可行立即给分。AIHTMLWindow2::onscroll Property------------------------------------------------
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章