我在一个View中使用CSplitterWnd,SplitterWnd下有两个View,一个是CListView, 另一个是CEditView,在CListView中使用EditLabel的时候,出现如下的问题:
当Item处于Edit状态时,不可以再次单击这个Item,如果单击了,马上报错
大家可以试一试估计错误的原因是SplitterWnd的父窗口不是FrameWnd造成的,遇到这样的问题,如何解决呢?

解决方案 »

  1.   

    的确有这种问题!现在也没解决!只好还是在Frame中去CreateView了!!
      

  2.   

    我也遇到这样的问题,我是在View里创建splitter,在Splitter里创建TreeView
    结果TreeView也是不能编辑,点鼠标就非法操作,后来 累 老兄解决了这个问题,
    你可以试试:
    在OnInitUpdate里修改你的CListView的风格,CContainerView::OnInitUpdate()
    {
        CListView* p = (CListView*)m_wndSplitter.GetPane(0,0);//获得CListView指针
        p->ModifyStyle(WS_CHILD, 0);
        ...
    }改完后编辑倒是可以了,可是估计ListView无法保持焦点了,就是说如果你在FRameWnd
    标题兰上点鼠标的话,ListView就失去焦点了
      

  3.   

    ro blackblue(跌跌撞撞):你的方法我试了一下,可是还是报错阿你能否具体一些或者提供一份代码
    我的E-Mail是[email protected]
      

  4.   

    抱什么错?
    你看一下,是不是listview的指针为空?如果是应该是mfc的bug你 SplitterWnd.SetParent(FrameWnd) 试试啊
      

  5.   


    csdnfriend(一天到晚悠悠的人)  你的方法我试过了
    不行的.
      

  6.   

    抱什么错,总得有点线索巴,你跟踪一下!我认为mfc这个doc/view框架有好有怀,坏处就在于太不灵活了,你想象dialog一样设置界面元素几乎是不可能。它的这个view太窄了,并且内置一个splitter,不知道几个人再用splitter
      

  7.   

    看看CSplitterWnd的源码就知道了,他与CFrameWnd联系的太紧密了
    只看到一个在Dialog里运用CSplitterWnd的例子
    还真没见过在view中装CSplitterWnd的
    我看还是自己实现一个吧,可以从CWnd继承
    不然的话,可以上http://www.codeguru.com/splitter/找找
      

  8.   

    赫赫谢谢各位了
    我解决了splitterwnd中使用一个CListCtrl就可以了,不用CListView
    可能是CListView的编辑消息没有被处理吧。现在揭帖还有,大家是不是有同感?
    很多人不结帖!我参与的问题有10%揭帖就很不错了:)