1.新建一个单文档工程,需要找到一张格式为BMP的位图。
2.然后再VC6.0下Insert -Resourse-BitMap-Import。文件类型选着所有文件,然后找到你要插入的位图(一般放在工程目录的res目录下)。插入进去后要重命名,命名要用双引号加起来。例如NQU
3.在你要插入的对话框所对应的类下新建一个CBitmapButton类型的变量。例如CBitmapButton BtnNq
4.在构造函数中载入你要插入的图标,例如
if(!BtnNq.LoadBitmaps(_T(NQU),NULL,NULL,NULL)) //抬起、按下、选中和禁止{
TRACE(Failed to load bitmap for NQ\n)
AfxThrowResourceException()}
5.在OnInitDialog()函数中加载进入。例如
//Op键的图标
VERIFY(BtnOp.SubclassDlgItem(IDC_BTNOP,this))//为每个按钮控件指定特定的位图
BtnOp.SizeToContent() //使按钮尺寸和位图尺寸相同
这样就完成了!
如果设置工程为console application,则默认是没有图标的,比较难看。但又不值得为此而建一个MFC工程写一个简单的C++程序。
添加图标的方法如下:
打开clock.dsw文件=>
插入资源=>
点击对话框左边的Icon>点击右边的按钮新建”。(或者选导入,导入自己在其他程序提取出的图标 )自己画图,也可以截图再粘贴上去=>
画好后点击文件=>
S保存为=>
自动显示Script1.rc=>
点“保存
又点击:工程=>
添加剂到工程=>
文件=>
选定Script1.rc=>
ok =>
这时候重新构建整个程序,就可以了。 再打开debug文件夹看看,如果新图标出现了,就说明添加新图标成功了
你好:利用SetMenuItemBitmaps这个函数可以做到 void CPopupMenuDlg::OnLButtonDown(UINT nFlags, CPoint point){
// TODO: 在此添加消息处理程序代码和/或调用默认值
CMenu menu//菜单
CMenu* pPopupMenu//菜单指针
CBitmap m_bitmap1//位图
menu.LoadMenu(IDR_MENU1)//加载ID为IDR_MENU1的菜单
m_bitmap1.LoadBitmap(IDB_BITMAP1)//加载ID为IDB_BITMAP1的位图 pPopupMenu = menu.GetSubMenu(0) //获取d出菜单的第一层子菜单的类指针//为菜单的第一和第三项设置图标
pPopupMenu->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap1,&m_bitmap1)
pPopupMenu->SetMenuItemBitmaps(2,MF_BYPOSITION,&m_bitmap1,&m_bitmap1)ClientToScreen(&point)//将鼠标单击处的坐标转换为屏幕坐标//d出菜单函数,第一个参数表示快捷菜单的下边界与由参数y指定的坐标对齐 //第二和第三个为x、y坐标,第四个表示拥有此菜单的窗口句柄,//第五个默认为NULL,表示当用户在菜单以外的区域按鼠标键时,菜单会消失pPopupMenu->TrackPopupMenu(TPM_BOTTOMALIGN,point.x,point.y,this,NULL)CDialog::OnLButtonDown(nFlags, point)
} 实例连接是:http://www.cnblogs.com/anhuizhxd/archive/2009/06/20/cpopupmenu.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)