2 xiaowaiwaia xiaowaiwaia 于 2014.05.06 21:17 提问

一个CWnd对象的onpaint函数中,动态Create两个子窗口时造成wincore.cpp中的断言错误。

一个对话框子类CViewDlg
在onpaint函数中需要再动态创建两个子窗口
void CViewDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码

CRect rect;
GetClientRect(&rect);
m_wnd1->Create( NULL,   //缺省的窗口
    NULL,   //无窗口名称
    WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_VISIBLE,
    //定义窗口风格
    rect,   // 窗口的大小
    this,   // 指定当前对话框为其父窗口指针
    0);  

CRect wndRect(0, rect.Height()*0.25, rect.Width()*0.25,rect.bottom);

m_wnd2->Create(NULL,
    NULL,
    WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE,
    wndRect,
    this,
    0);

}
以上代码会造成wincore.cpp文件638行的断言错误。
之前只需要动态创建一个窗口时,没有错误,请大牛指点!

1个回答

bushionmath
bushionmath   2016.10.12 20:55

加:m_wnd1 = new C********Wnd

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!