我选择了非DOC/VIEW方式,程序里的mainframe,初始化个对话框做上方的菜单。
我建了个CSplitter来拆分window,初始化时,左边是CDemoTreeView,右边是CHtmlViewEx.我想双击左边的树的子选项,然后在右边显示另外一个CDemoListView,里面预先设置好了数据。
我用Class Wizard在CDemoTreeView创建了 OnTreeDblClk(LPNMHDR lpdr):
OnTreeDblClk(LPNMHDR lpdr)
{
CTreeCtrl* pTreeCtrl =&m_GameTree;
HTREEITEM hItem =pTreeCtrl->GetSelectedItem();
pDemoListView =(CDemoListView*)m_wndSplitter.GetPane(0, 1);
}
m_wndSplitter我在CDemoListView.h重新定义了.
程序通过编译,可是当我双击树里的选项就会出错:
Debug Assertion Fail!
File: winsplit.cpp
line:2329CDemoListView是基于CListView的,我不能用class wizard去建立OnListDblClk()的function去实现双击列表里的选项去打开另外一个窗口.请问我自己能否自己新建个member funcation,类OnTreeDlbClk()去实现呢?希望高手能帮我解决这两个难题!!谢谢
schutzop
我建了个CSplitter来拆分window,初始化时,左边是CDemoTreeView,右边是CHtmlViewEx.我想双击左边的树的子选项,然后在右边显示另外一个CDemoListView,里面预先设置好了数据。
我用Class Wizard在CDemoTreeView创建了 OnTreeDblClk(LPNMHDR lpdr):
OnTreeDblClk(LPNMHDR lpdr)
{
CTreeCtrl* pTreeCtrl =&m_GameTree;
HTREEITEM hItem =pTreeCtrl->GetSelectedItem();
pDemoListView =(CDemoListView*)m_wndSplitter.GetPane(0, 1);
}
m_wndSplitter我在CDemoListView.h重新定义了.
程序通过编译,可是当我双击树里的选项就会出错:
Debug Assertion Fail!
File: winsplit.cpp
line:2329CDemoListView是基于CListView的,我不能用class wizard去建立OnListDblClk()的function去实现双击列表里的选项去打开另外一个窗口.请问我自己能否自己新建个member funcation,类OnTreeDlbClk()去实现呢?希望高手能帮我解决这两个难题!!谢谢
schutzop
line:2329
---------
是一个assert,去看看那一行是什么,或者跟踪调试一下
ASSERT(m_nMaxRows >= 1);
你的m_wndSplitter创建不正确,或者被溢出的内存破坏了
CDemoListView* pView=((CSplitter*)AfxGetMainWnd())->GetDemoListView;我照套他的用法,可是报错:
error C2065: 'MN_TREEVIEW' : undeclared identifier
error C2059: syntax error : ')'CDemoTreeView是基于CView的不是CTreeView的我在学校只学了C/C++,现在碰到了MFC觉得很乱,好象什么都不懂...谢谢各位指点!!
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample/html/_sample_mfc_DAOVIEW.asp
我选择了非DOC/VIEW的方式来写这个Demo程序呢...里面没有CDemoDoc这个class的,也可以用GetDoc那些的吗?