Windows 10 上で、MFC の CFileDialog で作成したダイアログを小さくリサイズできない
こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、Windows 10 上で、MFC の CFileDialog クラスを利用した場合に、ダイアログのサイズを、小さくリサイズできない現象についてご紹介します。
概要
MFC では、「ファイルの保存」、「印刷」等の一般的なダイアログ ボックスをカプセル化したコモンダイアログ クラスが利用可能です。
コモン ダイアログ クラスは、Windows が提供しており、OS の動作に依存します。
このコモン ダイアログ クラスにある、CFileDialog クラスでは、「ファイルを開く」と「名前を付けて保存」ダイアログの二種類のファイルダイアログを表示できます。
CFileDialog クラスを Windows 10 上で利用した場合、ダイアログのサイズを大きくリサイズすることはできますが、小さくすることができません。
また、サイズを大きくした後にアプリケーションを再起動した場合、大きいサイズのまま表示されます。
- 参考情報
各クラスの詳細については、以下の技術資料をご参照ください。
コモン ダイアログ クラス
<https://msdn.microsoft.com/ja-jp/library/5fcd0hw9.aspx>
CFileDialog クラス
<https://msdn.microsoft.com/ja-jp/library/dk77e5e7.aspx>
状況
本現象については、Windows 10 November Update にて修正されていますので、Windows Update を実施ください。
Windows 10 初のメジャーアップデートを本日公開
<https://blogs.windows.com/japan/2015/11/13/first-major-update-for-windows-10-available-today/>
対処方法
CFileDialog クラス作成時、Vista スタイル ファイル ダイアログを使用する場合は、本現象は発生しません。
具体的には、CFileDialog::CFileDialog 関数の第八引数に指定できる bVistaStyle を TRUE に設定することによって、対処可能です。
bVistaStyle を変更した場合、ダイアログの見た目については変化はありませんが、bVistaStyle が TRUE の場合は、CFileDialog::SetTemplate 関数が利用できません。
なお、Windows 10 では Visual Studio 2005 をサポートしていませんが、もし、Visual Studio 2005 以前のバージョンで作成した場合、上記 bVistaStyle は存在しないため、有効な対処方法はありません。
対象製品
Windows 10
Windows 8.1 以前の OS では本現象は発生しません。