最近也遇到这个问题,在MFC SDI(单文档界面)中添加继承CDockablePane类的悬浮窗口后,因为CMainFrame继承于CFrameWnd,没有DockPane方法,所以将基类替换成CFrameWndEx。但此时整个软件无法成功启动,并提示“创建空文档失败”。
原因是:在MainFrm中调用了CToolBar,使用了DockControlBar来停靠工具栏。
完整解决方法是:将基类CFrameWnd替换成基类CFrameWndEx后,还需要将类CToolBar改为类CMFCToolBar,停靠接口DockControlBar改为DockPane来停靠即可。另外使用类CStatusBar定义的状态栏也会显示失败,改为类CMFCStatusBar即可。
如果对“替换基类”的方法感兴趣,可以查看网页链接
主窗口退出,窗口一起关闭 悬浮窗口只要是主窗口的子窗口,这个自然会实现;
悬浮窗口可移动 不做特殊处理的窗口都是可以移动的
双击显示主窗口 在子窗口的OnLButtonDBlck中,调用父类窗口的ShowWindow函数;
主窗口隐藏,显示悬浮窗扣 在主窗口最小化时,Hide自己,显示浮动窗口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)