ダイアログのピクセル単位でデフォルトのサイズを設定したいと思います。たとえば、幅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);
dialogUnitXis320とdialogUnitYisであることが判明しました192が、ダイアログユニットをに設定すると320 * 192、取得したのはでCXXXDlg::OnSize(UINT nType, int cx, int cy)はありませ640 * 384ん560 * 336。何か案は?