ダイアログのピクセル単位でデフォルトのサイズを設定したいと思います。たとえば、幅640ピクセル、高さ384ピクセルです。つまりdefault
、が最初にCXXXDlg::OnSize(UINT nType, int cx, int cy)
呼び出されたときの値cx
は640、の値cy
は384です。シーンダイアログのデフォルトサイズはダイアログ単位であり、MapDialogRect()を使用して変換できます。ピクセルへのダイアログユニット、どうすればその逆を行うことができますか?MoveWindow()
およびはSetWindowPos()
ダイアログのサイズを設定できますが、デフォルトのサイズは設定できません。また、次のようにGetDialogBaseUnits()を試しました。
DWORD dw = GetDialogBaseUnits();
WORD m_duXx4 = LOWORD(dw);
WORD m_duYx8 = HIWORD(dw);
int dialogUnitX = MulDiv(640, 4, m_duXx4);
int dialogUnitY = MulDiv(384, 8, m_duYx8);
dialogUnitX
is320
とdialogUnitY
isであることが判明しました192
が、ダイアログユニットをに設定すると320 * 192
、取得したのはでCXXXDlg::OnSize(UINT nType, int cx, int cy)
はありませ640 * 384
ん560 * 336
。何か案は?