【问题标题】:MFC Crash on repeated SetWindowText() when a background color for the dialog is specified指定对话框的背景颜色时,重复 SetWindowText() 时 MFC 崩溃
【发布时间】:2011-01-22 15:23:12
【问题描述】:

以下代码可以正常工作:

for(int i=0; i for(int j=0; j m_title.SetWindowText( _T("lol"));<br> }
}

但是当我为对话框设置背景颜色时:

HBRUSH CTaggingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
return CreateSolidBrush(RGB(0,0,0));//黑色
}

上面的循环导致程序在wingdi.cpp中的断点:

CPaintDC::CPaintDC(CWnd* pWnd)

如何为对话框设置背景颜色而不使其崩溃?

【问题讨论】:

    标签: mfc dialog crash background-color


    【解决方案1】:

    没关系。通过将我设置背景颜色的方式更改为本文中的方法:

    http://www.codeguru.com/cpp/w-d/dislog/background/article.php/c1895

    问题已解决。

    【讨论】:

    • 那是因为你漏了画笔(CreateSolidBrush 每次都会给你一个新画笔)。通过使用 CBrush 作为成员变量,您只有一个画笔对象,并且它与窗口一起被清理。
    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-01-07
    相关资源
    最近更新 更多