论坛管理严格,菜鸟不懂规则,只能这里把经验交流

详细见:http://bbs.csdn.net/topics/390634123

问题:


如上图,MFC菜单栏使用其默认菜单“最近打开”,然而如果路径长度较长,其显示不全 会以\...\省略号代替,
而且鼠标移动到上面也没有弹出提示,不像工具栏,可以提示。

现在需要:鼠标移动上面,弹出提示信息;或者在任务栏(最下面)弹出提示信息。或者直接给出全部路径吧。

求高手指导,MFC里面哪一块可以添加代码得到以上需求。
PS:VS2010环境


然后有两个同学回复了,没实质帮助,却在交流中不断地让我自己想办法解决。

最后我的回复:(论坛管理自己回复不能超过3次,那我怎么跟人家交流啊!!!Bug)

解铃还须系铃人啊。没有老鸟帮忙,只能菜鸟慢慢飞了。

在C*App里LoadStdProfileSettings(4)函数包括了MFC给的最近打开菜单等内容。
不好修改其内部实现方法。比较简单的做法是,不用LoadStdProfileSetting
而是直接把其函数内部实现的过程,自己做一下。其内部函数为(不完全)
{
const TCHAR myFileSection[] = _T("Recent File List");
const TCHAR myFileEntry[] = _T("File%d");
const TCHAR myPreviewSection[] = _T("Settings");
const TCHAR myPreviewEntry[] = _T("PreviewPages");
ASSERT_VALID(this);
ASSERT(m_pRecentFileList == NULL);
int nMaxMRU=8;
BOOL bNoRecentDocs = FALSE;
GetSysPolicyValue(_AFX_SYSPOLICY_NORECENTDOCHISTORY, &bNoRecentDocs);
if (nMaxMRU != 0 && !bNoRecentDocs )
{
// create file MRU since nMaxMRU not zero
[color=#FF0000]m_pRecentFileList = new CRecentFileList(0, myFileSection, myFileEntry,
nMaxMRU);[/color]
m_pRecentFileList->ReadList();
}
// 0 by default means not set
m_nNumPreviewPages = GetProfileInt(myPreviewSection, myPreviewEntry, 0);
}
红色字体部分就是我需要的东西了,该构造函数的最后一个参数是默认的,所以仅仅做了一下修改
[color=#FF0000]m_pRecentFileList = new CRecentFileList(0, myFileSection, myFileEntry,nMaxMRU,60);[/color]这样将原来的菜单最大宽度的上限提高到60个字符,也可以更大,根据需要了。终于结贴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值