??
你不能在CFormView类中调用CTreeView::GetTreeCtrl
你创建这个窗口的时候要指定一个窗口ID,在FormView的OnNotify判断通知消息是否来自于同样的窗口ID,然后处理相应的通知。
你不能在CFormView类中调用CTreeView::GetTreeCtrl
你创建这个窗口的时候要指定一个窗口ID,在FormView的OnNotify判断通知消息是否来自于同样的窗口ID,然后处理相应的通知。
解决方案 »
- 请推荐一本学习VC++ 环境下internet编程的好书?
- 大家推荐个POP3邮件接收类(支持附件)答者都有分
- CPropertyPage能不能Create?
- ATL中使用MFC,编译时出现下面的问题LNK4086,请大家帮忙,帮顶有分
- GetMenu的问题
- c#源码测试出现问题
- 如何做两个计时器?
- vc是不是需要打补丁,要打多少个,在那里有的下的?
- 给分是什么意思?怎么给分?
- E:\MyCode\ww\ww.cpp(37) : fatal error C1001: INTERNAL COMPILER ERROR
- setwindowext和setviewportext有什么用啊
- 进程与线程同步以及进程间共享数据的方法,大家讨论一下
你好!
谢谢你上次对我的帮助,我简要描述一下我的做法,你看看有什么毛病:
我建了一个SDI工程,最后一步用的是一个CFormView作为基类,然后我又扩展了两个类CFormView和CTreeView,并且把这两个类,作为切分窗口(splitter window)的view来动态创建,创建的函数如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// create a splitter with 1 row, 2 columns
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
TRACE0("Failed to CreateStaticSplitter\n");
return FALSE;
} // add the first splitter pane - the default view in column 0
if (!m_wndSplitter.CreateView(0, 0,
RUNTIME_CLASS(CMyTreeView), CSize(130, 50), pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
} // add the second splitter pane - an input view in column 1
if (!m_wndSplitter.CreateView(0, 1,
RUNTIME_CLASS(CMyFormView), CSize(0, 0), pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
} // activate the input view
SetActiveView((CView*)m_wndSplitter.GetPane(0,1)); return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}然后我对CMyFormView中的树控件进行了初始化,添加了一些项,这是我才发现,没有办法响应树的事件,你觉得应该怎么该才能既实现切分窗口,又能够响应树事件呢?你有没有这方面的例程呢?谢谢你的帮助bizzard
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间加入
ON_NOTIFY(NM_CLICK, IDC_TREE_MYTREE,OnClickMyTree())当然OnClickMyTree( NMHDR* pNMHDR, LRESULT* pResult )自己要手动加入并做出理了。