用静态分割的方法,左边一个TREEVIEW,右边一个LISTVIEW。
TREEVIEW里面用
void MyTree::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
(CTreeCtrl&)treectrl=(CTreeCtrl&)GetTreeCtrl();
DWORD dwStyles=GetWindowLong(treectrl.m_hWnd,GWL_STYLE);//获取树控制原风格
dwStyles|=TVS_EDITLABELS|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT;
SetWindowLong(treectrl.m_hWnd,GWL_STYLE,dwStyles);//
}
这样的方法生成的一个TREECTRL,同样的方法在LISTVIEW里面生成一个LISTCTRL,但我发现这两个CTRL都没有成为类成员变量,所以不知道怎么让TREECTRL的消息处理函数里对LISTCTRL进行操作。请教了
TREEVIEW里面用
void MyTree::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
(CTreeCtrl&)treectrl=(CTreeCtrl&)GetTreeCtrl();
DWORD dwStyles=GetWindowLong(treectrl.m_hWnd,GWL_STYLE);//获取树控制原风格
dwStyles|=TVS_EDITLABELS|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT;
SetWindowLong(treectrl.m_hWnd,GWL_STYLE,dwStyles);//
}
这样的方法生成的一个TREECTRL,同样的方法在LISTVIEW里面生成一个LISTCTRL,但我发现这两个CTRL都没有成为类成员变量,所以不知道怎么让TREECTRL的消息处理函数里对LISTCTRL进行操作。请教了
比如说你将窗口拆分成了A和B两部分。在A中有一个button,B中有一个文本框,你希望A中的button按下去之后B中的静态文本(假设你已经将这个静态文本关联成了一个CString对象m_static_text)就显示一行字。那么你在A所对应的View类里先写出button的onlbuttondown()函数,在这个函数中向B类所在窗口发送一个消息。CMainFrame* p= (CMainFrame*)AfxGetApp()->m_pMainWnd;
//p是指向CMainFrame的指针,头文件中记得#include "MainFrm.h"::PostMessage(Splitter.GetPane(0,0)->m_hWnd,0x300,0L,0L);//向B所在的拆分子窗口发送0x300消息(假设B的窗口是(0,0),Splitter是你用来做拆分的CSplitterWnd对象);
//在B的消息响应函数中响应0x300消息。其实就是重载DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){
switch(message)
{
case 0x300:
{
m_static_text="你要显示的字";
break;
}}
}
::PostMessage(p->Splitter.GetPane(0,0)->m_hWnd,0x300,0L,0L);