菜单前面加图标。

vc_boy 2000-12-25 11:50:00
不知哪位可以给小弟一个最简单的在菜单前面图标的例子。
我猜是要进行自绘,但不知谁可以说说自绘的具体做法。
...全文
338 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcbear 2000-12-25
  • 打赏
  • 举报
回复
m_pMainMenu = this->GetMenu ();
m_pMenu = m_pMainMenu->GetSubMenu (1);
m_Bmap1.LoadBitmap (IDB_BITMAP1);
m_Bmap2.LoadBitmap (IDB_BITMAP2);

m_pMenu ->SetMenuItemBitmaps (0,MF_BYPOSITION,&m_Bmap1,&m_Bmap2);
return TRUE;
sun2000 2000-12-25
  • 打赏
  • 举报
回复
可能这个也行
CMenu::SetMenuItemBitmaps
kylewu 2000-12-25
  • 打赏
  • 举报
回复
好长的哦,这里贴好麻烦。
建议你download CJLibrary源码看里面的coolmenu.cpp就知道了。
flywhc 2000-12-25
  • 打赏
  • 举报
回复
不要用SetMenuItemBitmaps,很难看的。必须用自画
我从SDK角度来说。
首先把属性加上 MFT_OWNERDRAW ,比如用InsertMenuItem/SetMenuItemInfo
然后在消息循环里处理 WM_MEASUREITEM 来返回菜单项的宽度/高度(用GetTextExtentExPoint),
然后在WM_DRAWITEM里画。wParam是菜单ID,子菜单的ID是HMENU,lParam指向MENUITEMINFO结构体,里面有RECT和HDC,用GDI函数在这个RECT里画图标,TextOut写字。
参考 平台SDK\User interface\Resoures\menus\Using Menus\Creating Owner-Drawn Menu Items
ahphone 2000-12-25
  • 打赏
  • 举报
回复
在本站中有3个这样的例子:
http://www.csdn.net/dev/
然后visual c++ 原马集合 菜单操作 看到了没有
Kerrie 2000-12-25
  • 打赏
  • 举报
回复
用SetMenuItemBitmaps做的很难控制图标跟文字的距离,同时,被选中的时候,图标颜色会被翻转,如果不是只有2色的图标的话,效果惨不忍睹。
sunwin 2000-12-25
  • 打赏
  • 举报
回复
#include <CJ60Lib.h>

InstallCoolMenus(this, IDR_MAINFRAME);

即可,给分

随风bj 2000-12-25
  • 打赏
  • 举报
回复
重载DrawItem,然后根据DRAWITEMSTRUCT中的内容来画,还可以根据不同的ID来画不同的东西
wistaria 2000-12-25
  • 打赏
  • 举报
回复
加一个成员变量 CBitamp m_bmpMenu
m_bmpMenu.LoadBitmap(IDB_BITMAP1);
CMenu *menu=GetMenu()->GetSubMenu(0);
menu->SetMenuItemBitmaps(1,MF_BYPOSITION,&m_bmpMenu,&m_bmpMenu);
vcbear 2000-12-25
  • 打赏
  • 举报
回复
原理:
告诉系统不要帮我画窗口了,我自己来。

基本方法:
1.把一个控件(窗口)的属性选上 XXX_OWNERDRAW (XXX是对于不同的对象好象有不同前缀)
2.重载DrawItem函数,理解一下DRAWITEMSTRUCT 结构体,运用GDI函数画出自己想要的东西。
vc_boy 2000-12-25
  • 打赏
  • 举报
回复
谁可以给我大概的说说自绘的基本原理和基本方法?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧