本人要在图象检索反回结果后,想在图象的下方创建combobox,
:
在当前类中创建Lm_Feedback.Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_CHILD,m_Feedback[i],this,i);
能创建,但是运行时马上异常,显示ASSertion Failed.改成在主窗口中创建:
m_Feedback[i].Create(CBS_DROPDOWNLIST|WS_VISIBLE,rectFeedBack[i],AfxGetApp()->m_pMainWnd,IDD_CMB_FEEDBACK);
也是一样的错误.
不过,就是不知道怎么获得其父类的窗口..通过this如何获得WND* pParentWnd
:
在当前类中创建Lm_Feedback.Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_CHILD,m_Feedback[i],this,i);
能创建,但是运行时马上异常,显示ASSertion Failed.改成在主窗口中创建:
m_Feedback[i].Create(CBS_DROPDOWNLIST|WS_VISIBLE,rectFeedBack[i],AfxGetApp()->m_pMainWnd,IDD_CMB_FEEDBACK);
也是一样的错误.
不过,就是不知道怎么获得其父类的窗口..通过this如何获得WND* pParentWnd
看看什么断言错误!
{
AFX_MANAGE_STATE(_afxBaseModuleState.GetData());
return AfxWndProc(hWnd, nMsg, wParam, lParam);
}的return AfxWndProc(hWnd, nMsg, wParam, lParam)中停在77D1B517 call 77D194A4这里不动.
程序代码如下:
m_Feedback[10],rectFeedBack[10]都是全局变量
----------------------------------
if (!pDoc->m_pDibResu[i].IsEmpty(
{
pDoc->m_pDibResu[i].Display(pDC,xDest1,yDest,128,96,0,0,pDoc->m_pDibResu[i].GetWidth(), pDoc->m_pDibResu[i].GetHeight());//显示图片
rectFeedBack[i].left=xDest1;//rectFeedBack[10]是全局变量,这里定义其左右上下的坐标
rectFeedBack[i].right=xDest1+pDoc->m_pDibResu[i].GetWidth();
rectFeedBack[i].top=yDest+240+pDoc->m_pDibResu[i].GetHeight();
rectFeedBack[i].bottom=rectFeedBack[i].top+30;
m_Feedback[i].Create(CBS_DROPDOWNLIST|WS_VISIBLE,rectFeedBack[i],this->GetParent(),i);//创建组合框,以i作为ID号
m_Feedback[i].AddString("相似");
m_Feedback[i].AddString("极不相似");
m_Feedback[i].SetCurSel(0);
xDest1+=150;
}
CSplitterWnd *splitwnd=this->GetParent();会报错,那么我到底如何获取当前的父窗口呢.窗口是这样拆分的:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,CCreateContext* pContext)
{
VERIFY(m_wndSplitter.CreateStatic(this,2,1));
VERIFY(m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CRetrievallView), CSize(200, 200), pContext));
VERIFY(m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CResultView),CSize(100, 100), pContext));
return true;
}
当前视图this是CResultView.
如果改从m_pMainWnd获取 拆分子窗口的句柄,如何用函数呢.
CResultView *pView=(CResultView*)pMainframe->m_wndSplitter.GetPane(1,0);
上面的方法都试过了.一样的错误...
我是新手...
在返回结果的视图类里显示图片,在图片下方同时也显示组合框,
现在就是不知道当前子窗口怎么获取.
我要找的就是当前的子窗口...this返回的就是当前的视图类....
XXX.Create(CBS_DROPDOWNLIST|WS_CHILD|WS_VISIBLE,CRect(20,20,100,60),this,120374);
也试过基类改成CFormView,和CScrollView,但是都是同样的错误.ASSertion Failed. 提示框里说错误出现在wincore.cpp.调试跟踪
在AFXSTATE.CPP的AfxWndProcBase(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE(_afxBaseModuleState.GetData());
return AfxWndProc(hWnd, nMsg, wParam, lParam);
}的return AfxWndProc(hWnd, nMsg, wParam, lParam)中停在77D1B517 call 77D194A4这里不动.