繁体   English   中英

TaskDialogIndirect 随机失败并为空,未渲染 window

[英]TaskDialogIndirect randomly fails and makes empty, undrendered window

我使用TaskDialogIndirect()来显示更高级的错误消息。 我可以自定义按钮、图标等。

问题是,有时它会使这些不可见的空对话框。

我需要它是可靠的。 我想知道为什么这甚至会发生在首位。

它失败的例子(没有可见的窗口):

图片

这是制作对话框的代码(不是生产代码):

int MessageBoxPosL(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType, int X, int Y)
{
    TaskDialogData data;
    data.X = X;
    data.Y = Y;

    TASKDIALOGCONFIG config = {};
    config.cbSize = sizeof(config);
    config.hwndParent = hWnd;
    config.pszWindowTitle = lpCaption;
    config.pszContent = lpText;
    // configure other settings as desired, based on uType...
    config.pfCallback = &TaskDialogCallback;
    config.lpCallbackData = (LONG_PTR)&data;
    config.dwFlags = TDF_ENABLE_HYPERLINKS;
    config.hFooterIcon = LoadIcon(NULL, IDI_ERROR);
    config.dwCommonButtons = ButtonActive(TDCBF_YES_BUTTON) | ButtonActive(TDCBF_NO_BUTTON) | ButtonActive(TDCBF_OK_BUTTON) | ButtonActive(TDCBF_RETRY_BUTTON) | ButtonActive(TDCBF_CLOSE_BUTTON);
    config.pszMainIcon = SetIcon();

    int button = 0;
    TaskDialogIndirect(&config, &button, NULL, NULL);
    return button;
}

问题是标志 TDF_ENABLE_HYPERLINKS。 添加太长的超链接文本会导致对话框在桌面视图之外生成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM