注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

VC 2010 多文档视图窗口:获取菜单句柄失败,菜单文本显示不正确  

2010-12-11 14:45:58|  分类: vc界面编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

(1)VC 2010 多文档视图窗口:获取菜单句柄失败
在CMainFrame::OnCreate中,GetMenu,结果为NULL。好像VC 2005中并没有这种情况吧。我是想在托盘中使用主菜单,看来暂时只能这样处理了,自己调用LoadMenu,然后在托盘处弹出。

——知道原因了。多文档视图,不应该在主框架窗口获取,应该是获取子框架的菜单!

(2)VC 2010 多文档视图窗口:菜单文本显示不正确
代码如下:
void CMainFrame::OnUpdateAppExit(CCmdUI *pCmdUI)
{
    pCmdUI->SetText(_T("退出系统(&Q)\tCtrl+Q"));
}
按照通常的思路,这个显示结果是: “退出系统(Q)     Ctrl+Q”。但是\t制表符却没有起作用,显示为: “退出系统(Q)\tCtrl+Q”。如果不使用SetText,直接在资源里面修改,则是正常的。

解决!
发现是自己弄错了!我是从文件中加载了字符串,看起来确实是 "退出系统(&Q)\tCtrl+Q", 其实是 "退出系统(&Q)\\tCtrl+Q"。


(3) 不过,现在更奇怪了,居然是“退出系统(Q)”,后面的快捷键字符串没了!
原来是,我将BOOL C×××App::InitInstance()里面的,
    // 创建主 MDI 框架窗口
    CMainFrame* pMainFrame = new CMainFrame;
    if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
    {
        delete pMainFrame;
        return FALSE;
    }
改成了
    // 创建主 MDI 框架窗口
    CMainFrame* pMainFrame = new CMainFrame;
    if (!pMainFrame || !pMainFrame->LoadFrame(IDR_***TYPE))
    {
        delete pMainFrame;
        return FALSE;
    }


发现一个很有意思的现象,其实,我这里也可以这样:
pCmdUI->SetText(_T("退出系统(&Q)"));
后面"\tCtrl+Q",系统会自动追加的!如果没有加速键,系统会自动把后面的\t的内容给擦除!

By:zhanyonhu
  评论这张
 
阅读(2140)| 评论(5)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016