为 MFC 创建自定义 MessageBox class

Creating a custom MessageBox class for MFC

我正在尝试在 MFC 6.0 中创建无模式消息框 class。最终结果应该与此非常相似:

我正在尝试添加带有以下内容的图标,但它似乎不起作用。

    HICON hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ERROR));
    SetIcon(hIcon, FALSE);

此外,有没有办法将对话框顶部的背景颜色设置为与对话框其余部分不同的颜色?

此处存在一些设计问题,对于此类界面,程序应自动保存。如果用户正在删除文件,则使用无模式对话框确认。这样,如果用户不耐烦,数据也不会丢失。无论如何,你可以重写 OnPaint 等并绘制图标

void CMyDlg::OnPaint()
{
    CDialog::OnPaint();
    //draw white rectangle on top-half of dialog 
    //draw lt-gray rectangle at bottom-half, GetSysColor(COLOR_BTNFACE)
    HICON hIcon = LoadIcon(NULL, IDI_ERROR);
    dc.DrawIcon(x, y, hIcon);
    DestroyIcon(hIcon);
}

BOOL CMyDlg::OnEraseBkgnd(CDC* pDC)
{
    return 1;
}

您可能还需要覆盖 OnCtlColor