请教给菜单增加图标的方法 CMenu的SetMenuItemBitmap等方法实现的效果不太理想,而且好象不能显示256色位图.哪位高手有其他比较好的方法,能在菜单上显示256色图标,而且有比较好的效果. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不用SetMenuItemBitmap,试一下<windows程序设计> 关于位图 那章里面有给菜单加图标的~ 重载SetMenuItemBitmap自己画不可以吗? // LGMenu.h: interface for the CLGMenu class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_)#define AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include <afxtempl.h>// struct for toolbar resource; It's already defined in toolbar class ;)struct ToolBarData{ WORD wVersion; WORD wWidth; WORD wHeight; WORD wItemCount; };struct MenuItemData{ int iImageIdx; int iCmd; char cText[128];};struct ImageItemData{ int iImageIdx; int iCmd;};class CLGMenu {public: CLGMenu(); virtual ~CLGMenu();protected: HFONT m_hFont; CSize m_szImage; CImageList m_ilList; CImageList m_ilOther; CArray<MenuItemData*,MenuItemData*> m_aMenuData; CArray<ImageItemData*,ImageItemData*> m_aImageData;public: virtual void DrawDisabledButton( CDC & dc, const CRect & rc ) const; virtual bool MeasureItem(LPMEASUREITEMSTRUCT lpm); virtual bool DrawItem(LPDRAWITEMSTRUCT lp); int FindImageItem(const int cmd); MenuItemData * AddMenuItem(const char * txt, const int cmd); virtual void RemapMenu(CMenu * pMenu); void AddImageItem(const int idx, WORD cmd); virtual bool LoadToolBarResource(unsigned int resId, COLORREF clMask = 0xC0C0C0); virtual bool AddToolBarResource(unsigned int resId, COLORREF clMask = 0xC0C0C0);};#endif // !defined(AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_) CPP文件内容太长,有兴趣向以下地址发一封E-mail 索取: [email protected] 关于重绘Splitter的问题。 新手求教 想问下CoCreateObject这个是干什么用的? VC里DataGrid怎么才能改他的列数???? !!!求救:CComboBox读的值错误! ~~~~(序列化,dll,组态)一问题,先进去吧~~~剩下0分了:( 请求帮助:非位图按钮的实现(具体内容请进。。。) 获取窗口句柄的奇怪问题!!!!!!!! 急!!:如何查出除已知栏位外的所有栏位的数据 给出一个多边形的顶点坐标,和一个点的坐标,如何判断该点是否在多边形中? 怎样修改CTreeCtrl滚动条的样式?像msn一样的。 关于属性页对话框问题
//
//////////////////////////////////////////////////////////////////////#if !defined(AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_)
#define AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include <afxtempl.h>
// struct for toolbar resource; It's already defined in toolbar class ;)
struct ToolBarData
{
WORD wVersion;
WORD wWidth;
WORD wHeight;
WORD wItemCount;
};struct MenuItemData
{
int iImageIdx;
int iCmd;
char cText[128];
};struct ImageItemData
{
int iImageIdx;
int iCmd;
};
class CLGMenu
{
public:
CLGMenu();
virtual ~CLGMenu();protected:
HFONT m_hFont; CSize m_szImage;
CImageList m_ilList;
CImageList m_ilOther; CArray<MenuItemData*,MenuItemData*> m_aMenuData;
CArray<ImageItemData*,ImageItemData*> m_aImageData;public:
virtual void DrawDisabledButton( CDC & dc, const CRect & rc ) const;
virtual bool MeasureItem(LPMEASUREITEMSTRUCT lpm);
virtual bool DrawItem(LPDRAWITEMSTRUCT lp);
int FindImageItem(const int cmd);
MenuItemData * AddMenuItem(const char * txt, const int cmd);
virtual void RemapMenu(CMenu * pMenu);
void AddImageItem(const int idx, WORD cmd);
virtual bool LoadToolBarResource(unsigned int resId, COLORREF clMask = 0xC0C0C0);
virtual bool AddToolBarResource(unsigned int resId, COLORREF clMask = 0xC0C0C0);
};#endif // !defined(AFX_LGMENU_H__017EC1E9_C139_11D7_B575_B65CF7DFC864__INCLUDED_)