一个SDI程序,我在View中定义了一个Splitter,然后用这个Splitter分割View,创建了两个View,其中一个是TreeView。
    设该TreeView风格为TVS_EDITLABELS,当点击TreeItem,使其变为可编辑状态时,如果在别处单击鼠标,没有问题,修改被保存。但是如果还在该Item上点击鼠标,就会弹出一个Assert框,指向Wincore.cpp中一个IsWindow()的报警,它说那个编辑窗口句柄有问题。
    如果在MainFrame中定义Splitter,分割的是MainWnd,则一点问题没有,完全正常。
    说了这么一大坨,也不知道你明白了没有。
    这个问题困扰我很久了,盼高手指点。

解决方案 »

  1.   

    我想不应该在View中用Splitter,而应该在MainFrame中用,MianFrame的一边是TreeView,另一边是另一个View。
      

  2.   

    在mfc框架里面微软的设计是wnd管理view。建议你还是在CMainFrame里面创建splitter吧
      

  3.   

    本来就应该是在MainFrame里面用Splitter的,你可以看看喉结的《深入浅出MFC》,里面有专门一节讲这个问题,很详细。
      

  4.   

    改在Mainframe里面用了。其实,如果不允许在view里用,为什么还让我创建成功呢?而且看起来还像模像样的,还以为考虑的这个结构没问题。到了这时候才发现,真的是代价惨痛。分数大家分了吧