首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于对父窗口的统制

2012-09-29 
关于对父窗口的控制C/C++ code::SetDlgItemTextW(GetParent()-m_hWnd,IDC_EDITADD,L测试edit)( (CTest

关于对父窗口的控制

C/C++ code
::SetDlgItemTextW(GetParent()->m_hWnd,IDC_EDITADD,L"测试edit");( (CTestDlg*)GetParent())->m_listAdd.AddString(L"测试list");


问题一:CTestDlg是父窗口,我在子窗口上想对父窗口上控件进行操作,通过如上形式实现。区别是对CEdit控件我可以直接用SetDlgItemTextW()来操作。而如果直接用
((CListBox*)::GetDlgItem(GetParent()->m_hWnd,IDC_LISTADD))->InsertString(-1,L"测试list");来实现根本就出错,于是我想出了上面声明一个CListBox m_listAdd 对象来实现。
请问:如果不声明对象应该对CListBox CComboBox 这样的控件如何操作(非同一窗口).

问题二: 想在 CListCtrl 记录里做按钮,应该如何做?也就是每一条记录都有个按钮(如:删除,修改),我现在是用右键菜单或者单击事件来转换的。有没有直接写入按钮的例子,或者对一系列按钮组相同的功能时候应该如何处理,刚学MFC不久,请高人指教下,多谢


再啰嗦个问题:求一个向导页面的例子,有测边栏导航的(像VS2010添加新工程那样的向导,可以点击侧边栏),一直没找到,多谢。

[解决办法]
1.操作父窗口的子控件
//使用SetDlgItemText
C/C++ code
CWnd* pDlg=GetParent();if(pDlg)     pDlg->SetDlgItemText(IDC_EDITADD,_T("测试edit"));//使用GetDlgItemCWnd* pDlg=GetParent();if(pDlg){     CListBox* pListBox=(CListBox*)pDlg->GetDlgItem(IDC_LISTADD);     if(pListBox){          pListBox->InsertString(-1,_T("测试list"));     }}//强制转换为自定义窗口类CMyWindow* pDlg=(CMyWindow*)GetParent();if(pDlg){     pDlg->m_listAdd.InsertString(-1,_T("测试list"));}
[解决办法]
2. codeproject上搜索XListCtrl
3. 拆分窗口CSplitterWnd

热点排行