弹出模态对话框后此框没反应了。鼠标点其他地方后再点回来对话框变正常。

hiyu333 2003-10-16 05:58:36
弹出模态对话框后此框没反应了。鼠标点其他地方后再点回来对话框变正常。
...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
8412230 2003-10-16
  • 打赏
  • 举报
回复
可能是你把代码直接写到 myctreectrl::OnRButtonDown(nFlags, point);的前面了,你可以把这句代码注释掉试试!
hiyu333 2003-10-16
  • 打赏
  • 举报
回复
从一个treectrl里派生一个类myctreectrl,然后在myctreectrl里响应右击弹出菜单,选取命令后执行dlg.DoModal().对话框弹出,弹出后对话框就没反映了,只能先点到其他程序然后再回到本对话框,对话框才有反映。不知为什么?
vcforever 2003-10-16
  • 打赏
  • 举报
回复
能说的清楚一点吗??
zhucde 2003-10-16
  • 打赏
  • 举报
回复
什么意思?不明白
sunblue 2003-10-16
  • 打赏
  • 举报
回复
没遇到过,呵呵
code我看看
MFC的视图打印/预览功能基于CView::OnFilePrint和CView::OnFilePrintPreview这两个函数。 如果要对用户自定义对话模态)内的子视图进行打印,直接调用该视图的CView::OnFilePrint即可,弹出的“选择打印机”对话同样也是模态对话,覆盖在用户对话上。 如果要对用户对话内的视图进行预览,直接调用该视图的CView::OnFilePrintPreview后,预览视图(MFC CPreviewView类实例)内虽然预览正常,但是挡住了用户对话。由于用户对话模态的,导致预览视图上的“打印...”、“上一页”、“下一页”、“放大”、“缩小”、“单页/双页”和“关闭”等按钮均无法响应鼠标击,处于“假死”状态。 解决方法: 第一个解决方法是先关闭用户对话,再启动预览,详见http://download.csdn.net/detail/oliver_zheng/7639379 第二个解决方法仍然保持用户对话,但是由于对话模态,无法利用主架窗口CMainFrame作为预览架,因此要另外创建并显示一个架窗口(CFrameWnd的派生类),作为预览窗口。 另外创建的架窗口类名为CPrintPreviewFrameWnd,其对应的单文档视图是CViewPrintPreview类,利用这些关联信息创建一个单文档模板,利用此单文档模板创建架窗口,并在其内嵌视图(CViewPrintPreview类)中保存原主架(CMainFrame)、用户对话和其上需要打印的视图(CTestView)。然后基于CViewPrintPreview类启动预览和打印(具体过程详见第一个解决办法)。由于CViewPrintPreview的各个相关虚函数诸如OnPreparePrinting、OnBeginPrinting、OnPrepareDC、OnPrint和OnEndPrinting都被重载,用于调用真正需要打印的视图CTestView的各自函数,因此CViewPrintPreview实际上只是个“中介”视图,是连接预览视图(MFC CPreviewView类)和CTestView的桥梁。 当打印或者预览结束后,关闭自行创建的架窗口CPrintPreviewFrameWnd,利用CViewPrintPreview类中实现保存的信息恢复主架和用户对话,恢复打印/预览前的环境。 代码(实现了第二个解决方法)在VC2010下编译通过。第一个解决方法的源码详见http://download.csdn.net/detail/oliver_zheng/7639379

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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