我有一个工程
其中的view是基于listview的
view中有个函数show,主要功能是列一个表格
我在view中使用了一个非模态对话框,我想在对话框的按钮中调用show
但是却显示不出来,我是这样写的
在对话框里的
void pic::Onhzy() 
{
CODBCDemo2View *sl=new CODBCDemo2View;
sl->show();
}
show是这样写的
if(pDlg != NULL){
//AfxMessageBox("345!");
    delete pDlg;
}
//GetParent()->ShowWindow(0);
CRect rect;
CListCtrl& ctrlList = (CListCtrl&) GetListCtrl();
ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
ctrlList.GetWindowRect(rect); try{
...................
....................
CODBCFieldInfo fieldinfo; 
for(int n=0;n<nFieldCount;n++){
m_pCommonRS->GetODBCFieldInfo(n, fieldinfo);
int nWidth = ctrlList.GetStringWidth(fieldinfo.m_strName) + 15;
ctrlList.InsertColumn(n, fieldinfo.m_strName, LVCFMT_LEFT, nWidth);
}
......
......
当我用菜单调用show的时候show运行是正常的
当我用按钮的时候显示不出来
而且上面的delete pDlg不执行
望高手赐教

解决方案 »

  1.   

    void pic::Onhzy() 
    {
    CODBCDemo2View *sl=(CODBCDemo2View *)((CFrameWnd*)AfxGetMainWnd()->GetActiveView());
    if(sl)
    sl->show();
    }
      

  2.   

    可是我这样写了,编译通不过呀
    GetActiveView' : is not a member of 'CWnd'
    我试过GetActiveWindow不行
    请指教
      

  3.   

    try
    void pic::Onhzy() 
    {
       GetParent()->Show();
    }
      

  4.   

    GetParent()->Show();
    直接这么写么!?
    好象编译也报错呀
      

  5.   

    CODBCDemo2View *sl = CGetParent();
    sl->Show();
      

  6.   

    还是不行呀
    CODBCDemo2View *sl = CGetParent();
    报错
    CGetParent' : undeclared identifier
    'initializing' : cannot convert from 'int' to 'class CODBCDemo2View *'
    我该怎么办呀
      

  7.   

    CODBCDemo2View *sl=(CODBCDemo2View *)(((CFrameWnd*)AfxGetMainWnd())->GetActiveView());
    if(sl)
    sl->show();