对话框应用程序中的菜单前面加图标的问题

liwei84516 2009-09-11 11:01:46
如题,我在OnPaint中添加了如下代码,但是菜单前面却没有图标显示出来。
		CWnd*parent = AfxGetMainWnd();
if(parent)
{
CMenu*pmenubar=parent->GetMenu();
CMenu*pmenu = pmenubar->GetSubMenu(2);
pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&m_bmpDBManage,&m_bmpSDCard);
}


难道是我代码什么地方出错了?
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
youyifang 2009-09-11
  • 打赏
  • 举报
回复
检查下每个指针和位图句柄
liwei84516 2009-09-11
  • 打赏
  • 举报
回复
我的问题是菜单前面添加的图标没法显示出来呢!我试过了,问题还是一样的!
feilinhe 2009-09-11
  • 打赏
  • 举报
回复
对话框中的菜单是相应不了菜单的ON_UPDATE_COMMAND_UI消息的,于SDI不一样按照下面的添加一下代码
http://hi.baidu.com/chaohona/blog/item/0acf11c321d6283de4dd3b3a.html
别忘了头文件中添加afx_msg void OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex,BOOL bSysMenu);
liwei84516 2009-09-11
  • 打赏
  • 举报
回复
实践证明,SDI中菜单加位图和对话框中手动添加的菜单添加位图是截然不同的,我同样的代码放在SDI中可以成功,但是放到了对话框中就不行了,郁闷!

我的菜单是在对话框属性中的一个选项中选择菜单的,而不是自create()出来的,难道问题出在这里?
liwei84516 2009-09-11
  • 打赏
  • 举报
回复
呵呵,我的是对话框程序中,不是SDI MDI,不过好像发现问题了,我同样的代码刚才放到SDI中去,也不能看到图,换一个小点的位图就可以了。很有可能是我的图有问题,过大!处理好了,来结贴,上面的兄弟等着拿分哈!!!
zyq5945 2009-09-11
  • 打赏
  • 举报
回复
不用再OnPaint添加,可以在CMainFrame::OnCreate添加就行了.
检查下你的图片是否加载正确,估计是图片没加载好.
liwei84516 2009-09-11
  • 打赏
  • 举报
回复
应该不是,我的图是有颜色的,菜单上面一点改变都没有!我断点的时候程序是执行了,但就是没反应!!不知道怎么回事!
chenwencan 2009-09-11
  • 打赏
  • 举报
回复
是不是位图大了,只显示了一小部分,所以看起来就没有正确的显示
liwei84516 2009-09-11
  • 打赏
  • 举报
回复
我看过了,没有发现什么问题啊!真是奇怪,等高手解决!
Windows 操作系统(2) 1、Windows是一个多任务操作系统,这是指( )。 A. 可供多个用户同时使用 B. 可同时运行多个应用程序 C. 可运行很多种应用程序 D. 可同时管理多种资源 2、在Windows98桌面上有某个应用程序快捷方式的图标。如果要启动该程序,只需( )该图标即可。 A)双击 B)右击 C)指向 D)移动 3、Windows98是一个( )操作系统。 A. 单用户单任务 B. 多用户单任务 C. 单用户多任务 D. 多用户多任务 4、图25是任务栏某刻的状态,它显示( )。 A)"Hyper..."窗口处于最大化状态 B)"Delphi 5"窗口处于最小化状态 C)"Delphi 5"窗口处于活动状态 D)"Hyper..."窗口和"我的电脑"窗口处于活动状态 5、Windows98系统运行突然断电,重新启动计算机时,系统将自动执行( )程序。 A)磁盘扫描 B)磁盘空间管理 C)磁盘清理 D)磁盘碎片整理 6、Ctrl+Del+Alt在DOS6.22有热启动作用,如果在Windows98同时按下这三个键将( )。 A)立即重新热启动计算机 B)进入任务管理器 C)进行多个任务之间的切换 D)切换至DOS状态 7、在Windows 98,呈灰色显示的菜单意味着 A) 该菜单当前不能选用 B) 选菜单后将弹出对话框 C) 选菜单后将弹出下级子菜单 D) 该菜单正在使用 8、在WINDOWS 98,一般不使用下列哪一种来管理"打印机" A) 资源管理器B) 控制面板C) 我的电脑D) 附件 9、删除Windows 98桌面上某个应用程序图标,意味着 A) 该应用程序连同其图标一起被删除 B) 只删除了该应用程序,对应的图标被隐藏 C) 只删除了图标,对应的应用程序被保留 D) 该应用程序连同其图标一起被隐藏 10、在Windows98的窗口,单击末尾带有省略号"... "的菜单意味着( )。 A. 将弹出下一级菜单 B. 将执行该菜单命令 C. 该菜单已被选用 D. 将弹出一对话框 11、在Windows 98 ,为了弹出"显示属性"对话框以进行显示器的设置,下列操作 ,正确的是 A) 用鼠标右键单击"任务栏"空白处,在弹出的快捷菜单选择"属性"项 B) 用鼠标右键单击桌面空白处,在弹出的快捷菜单选择"属性"项 C) 用鼠标右键单击"我的电脑"窗口空白处,在弹出的快捷菜单选择"属性"项 D) 用鼠标右键单击"资源管理器"窗口空白处,在弹出的快捷菜单选择"属性"项 12、在Windows98下,下列关于"即插即用"设备的说法正确的是( )。 A. Windows98在启动时可对其占用的硬件资源自动检测和设置 B. 此设备一旦连接计算机即可使用 C. Windows98支持所有设备为"即插即用" D. Windows98已为其提供设备驱动程序 13、在Window 95,为了将软盘上选定的文件移动到硬盘上,正确的操作是 A) 用鼠标左键拖动后,再选择"移动到当前位置" B) 用鼠标右键拖动后,再选择"移动到当前位置" C) 按住Ctrl键,再用鼠标左键拖动 D) 按住Alt键,再用鼠标右键拖动 14、在Windows 98 "开始"菜单下的"文档"菜单存放的是 A) 最近建立的文档 B) 最近打开过的文件夹 C) 最近打开过的文档 D) 最近运行过的程序 15、下列WINDOW 95桌面上图标的叙述,错误的是 A) 所有的图标都可以重命名" B) 图标可以重新排列 C) 图标可以复制 D) 所有的图标都可以移动 16、下列关于Window 95对话框的叙述,错误的是 A) 对话框是提供给用户与计算机对话的界面 B) 对话框的位置可以移动,但大小不能改变 C) 对话框的位置和大小都不能改变 D) 对话框可能会出现滚动条 17、下列关于Window 95"开始"菜单的叙述,错误的是 A) "开始"菜单包含了Windows 98的全部功能 B) 用户可以自己定义"开始"菜单 C) "开始"菜单的位置不能改变 D) "开始"按钮可以不显示在桌面上 18、Windows98的系统工具,( )可以检查文件错误并自动修复。 A. 磁盘空间管理 B. 磁盘扫描程序 C. 磁盘碎片整理 D. 备份 19、从Windows启动MS- DOS方式进入了DOS状态,如果想回到Windos状态,在DOS提示符下,应键入的命令为 A) EXIT B) QUIT C) WIN D) DOS -U 20、在WINDOWS 98,拖动鼠标执行复制操作时,鼠标光标的箭头尾部 A) 带有"!"号B) 带有"+"号C) 带有"%"号D) 不带任何符号 21、在 WINDOWS环境,每

16,550

社区成员

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

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

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