2011-05-14 13 views
3

私は500x520pxのWin32ダイアログを取得しようとしていますが、私の.rcファイルでは、これらの設定は私が期待したより大きなウィンドウを取得します。Win32ダイアログのサイズをピクセル単位で設定するにはどうすればよいですか?

IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 500, 520 
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX 

スケーリング係数はどこかにありますか?

答えて

5

ダイアログリソース内の単位は、かなり複雑なプロセスによってダイアログフォントの寸法で正規化されたdialog unitsです。 MapDialogRect()でダイアログユニットをスクリーンピクセルに変換できます。

GetDialogBaseUnits()のドキュメントにはさらに多くの詳細がありますが、お勧めの方法はMapDialogRect()に電話し、あなたのために努力してください。

+0

ええ、*理由* 'GetDialogBaseUnits'を使用するべきではありません。その計算はデフォルトのシステムフォントに基づいているためです(http://blogs.msdn.com/b/michkap /archive/2008/08/14/8867856.aspx)。残念ながら、問題のウィンドウがダイアログではない場合、 'MapDialogRect'は機能しないので、選択肢があまりありません。 –

関連する問題