関数を介してタスクダイアログを使用していTaskDialogIndirect
ます。
cxWidth
ダイアログの幅が構造体のフィールドで指定した幅のちょうど 2 倍であることを除いて、すべてが期待どおりに機能しますTASKDIALOGCONFIG
。
関連コード:
TASKDIALOGCONFIG tdc;
ZeroMemory(&tdc, sizeof(tdc));
tdc.cbSize = sizeof(TASKDIALOGCONFIG);
tdc.hwndParent = hwndParent;
tdc.hInstance = NULL;
tdc.pszWindowTitle = L"Title";
tdc.pszMainInstruction = L"Foo";
tdc.pszContent = L"Bar";
tdc.dwFlags = TDF_POSITION_RELATIVE_TO_WINDOW;
tdc.cxWidth = 150;
int result;
HRESULT hr = TaskDialogIndirect(&tdc, &result, NULL, NULL);
ドキュメントによると、これはcxWidth
ダイアログ単位の幅です。
上記のコードでは、ダイアログの幅が 150 ではなく 300 ピクセルになっています。これは、1 つの水平ダイアログ ユニットが 2 であることを意味し、非常に小さいように見えます。
タスク ダイアログの幅を明示的に指定したい場合、どうすればよいですか? この場合、1 つの水平ダイアログ ユニットが常に 2 であるという事実に頼ることはできないと思います。