描述:
一个dialog窗体上创建了一个Ctreectrl(Cmain)左 和一个CTabCtrl(Cdatabrowse)右
,
CTabCtrl的一页上动态创建两个dialog(Cunit(sw_show),Cfac(sw_hide))(style:child);问:Ctreectrl节点单击时根据条件显示/隐藏 Cunit,cfac两个dialog窗体片断代码:
void CMainFrame::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
//*****; m_databrowse.SetPageVisible();
//**********
}
void Cdatabrowse::SetPageVisible()
{
//********
UnitInfroFRM.ShowWindow(FALSE);------失败
FacInfroFRM.ShowWindow(SW_SHOW);
//**************** }
一个dialog窗体上创建了一个Ctreectrl(Cmain)左 和一个CTabCtrl(Cdatabrowse)右
,
CTabCtrl的一页上动态创建两个dialog(Cunit(sw_show),Cfac(sw_hide))(style:child);问:Ctreectrl节点单击时根据条件显示/隐藏 Cunit,cfac两个dialog窗体片断代码:
void CMainFrame::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
//*****; m_databrowse.SetPageVisible();
//**********
}
void Cdatabrowse::SetPageVisible()
{
//********
UnitInfroFRM.ShowWindow(FALSE);------失败
FacInfroFRM.ShowWindow(SW_SHOW);
//**************** }
****unused
BOOL Cdatabrowse::OnInitDialog()
{
UnitInfroFRM.Create(IDD_DIALOG_UNITINFRO,&m_tab_form);
UnitInfroFRM.MoveWindow(&rc);
UnitInfroFRM.ShowWindow(SW_SHOW); FacInfroFRM.Create(IDD_DIALOG_FACINFRO,&m_tab_form);
FacInfroFRM.MoveWindow(&rc);
FacInfroFRM.ShowWindow(SW_HIDE);
return TRUE;
}
****unused-----它在那赋的值..?
赋值成功了没..?是不是释放了,有用..?---
自己跟下
MaiFrm.cpp 中 调用 Cdatabrowse 的 setpagevisible 函数
{
UnitInfroFRM.m_btnsave.EnableWindow(0); }
这样调用也不行,初学vc++ 不明白
line:350
file:winocc.cppFor information on how your program can cause an assertion failer
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
****
*** m_TabCtrl_data.AddPage(RUNTIME_CLASS(Cdatabrowse),IDD_DIALOG_DATABROWSE,"数据显示区",IDI_ICON2);
}--------------------------
void CMainFrame::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
UpdateData(true);
***************** TreeNodeData *NodeData=(TreeNodeData *)m_wndTree.GetItemData(pNMTreeView->itemNew.hItem);
m_databrowse.SetPageVisible();//此处调用Cdatabrowse的SetPageVisible()
*******
}
---------------------void Cdatabrowse::SetPageVisible()
{ /* CWnd* pDlg;pDlg=NULL;
pDlg=(Cdatabrowse *)GetDlgItem(IDD_DIALOG_DATABROWSE);
if(pDlg!=NULL)
{
UnitInfroFRM.ShowWindow(SW_HIDE);
} */
UnitInfroFRM.m_btnsave.EnableWindow(0); }
CxxDialog *pUnitInfroFRM = new CxxDialog;
pUnitInfroFRM ->Create(IDD_XXX);你这个:
UnitInfroFRM.Create(IDD_DIALOG_UNITINFRO,&m_tab_form);
调用成功没有哟?还有, 你是在哪儿定义的UnitInfroFRM哟?
在Cdatabrowse.h里定义的
如果把函数放在Cdatabrowse.cpp里执行没有问题,可以如果用MainFrm.cpp里通过单击树节点
时就报错。程序结构:左边m_tab_form上生成树结构
右边m_tab_data上生成N个dialog来显示数据
结构部分的代码都在上边了,各位帮忙啊,一个星期也没有解决了,刚学c++,高手指点一二