用VC做一个写字板程序时遇到的问题

lifanxi 2002-01-29 08:18:44
我使用VC6的APPWIZARD生成一个SDI程序,在最后一步把VIEW的基类改成CRichEditView,结果程序生成后运行就会出现Assert错误,改成Release后没有问题。不知是何原因?改用VC7.NET Beta 2没有这样的问题。
接下来我试验给这个程序在原来的基础上再加上一条ToolBar,我先建立一个新的TOOLBAR资源,然后给CMainFrm类加一个protected的成员CToolBar m_wndMyBar;然后在OnCreate加上下面的句子:
if (!m_wndMyBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndMyBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndMyBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndMyBar);
目前为止还没有任何问题。
为了能让程序记住工具条的状态。我在OnCreate的最后加上
LoadBarState(_T("MainBarState"));
同时加上WM_CLOSE的响应函数OnClose();
SaveBarState(_T("MainBarState"));
这时就出现问题了,程序“记住”了工具条的状态,可惜经常记错。更严重的是当把两条工具条都拖到浮动时,关闭程序,再运行程序就会出现Assert错误。必须到注册表删掉相应的键值才能重新运行程序。
另一方面,MS随VC发布的WordPad示例程序也没有记住工具条状态的功能,但我给它的程序加上LoadBarState和SaveBarState后,它就可以正常的记住工具条的状态了。
请高手指点我上面的操作问题出在什么地方。十分感谢!
...全文
120 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunruijia 2002-07-09
  • 打赏
  • 举报
回复
CToolBar::CreateEx函数后面还有一个ID参数你没有指定,指定一个自定义的值即可解决你的问题,参考一下MSDN
lifanxi 2002-01-30
  • 打赏
  • 举报
回复
我估计是我在多生成ToolBar的代码中出了什么问题。请高手指点!
lifanxi 2002-01-30
  • 打赏
  • 举报
回复
我估计是我在多生成ToolBar的代码中出了什么问题。请高手指点!
lifanxi 2002-01-29
  • 打赏
  • 举报
回复
To idoloveyou:
感谢回复,我已经参考过那个源代码了,不过问题还是没有解决。
idoloveyou 2002-01-29
  • 打赏
  • 举报
回复
MSDN中有写字板的源代码,建议你看看那个

16,548

社区成员

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

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

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