网上下载了一个单文档的,显示图片的程序,打开文件对话框选择图片导入,程序里对打开文件对话框是在document中做的处理,然后调用了OnOpenDocument将选择的图片路径传入,在view中的OnUpdate里根据document的图片做加载的处理。然后调用invalidate通知ondraw去绘制。这一切都没问题。然后我建立了一个CMyDialog,资源创建的,继承CDialog,然后在view中处理的菜单点击,弹出这个dialog,非模态创建。CMyDialog作为view中的成员变量,view初始化时create,关闭时去DestroyWindow这个CMyDialog。问题来了,如果不去打开图片让document去加载,我这个CMyDialog非模态的对话框可以正常响应。但是如果先打开图片去加载,然后再去显示出CMyDialog,那我这个dialog就获取不到任何消息,点击按钮也没反映,打了log也显示不出来。dialog是show出来了,但是就是没有任何消息,好像没有焦点了似的。不知道描述的请不清楚,请指教。

解决方案 »

  1.   

    没了,就是document中处理了创建单文档工程时自带的open菜单项的处理,里面去打开文件对话框,获取选择的图片路径,然后用OpenDocumentFile将路径传入,就完了。然后view中onUpdate里做图片加载。我注释掉onupdate里的所有东西,图片不加载了,但是也出现同样问题,但是注释掉document中的OpenDocumentFile函数,onUpdate不变,虽然读不到东西,但是我的CMyDialog可以正常响应。
      

  2.   

    感觉像是OpenDocumentFile内部的问题
    不过做这方面比较少
    也不好分析原因
      

  3.   

    恩 谢谢 我试试换种加载图片的方式吧,不通过document读取了,都在view里做,我对document也不太了解。