【发布时间】:2012-09-25 05:53:52
【问题描述】:
我想设置对话框的默认大小(以像素为单位),比如宽度为 640 像素,高度为 384 像素。我所说的default 的意思是,当第一次调用CXXXDlg::OnSize(UINT nType, int cx, int cy) 时,cx 的值为 640,cy 的值为 384。场景对话框的默认大小以对话框为单位,我可以使用MapDialogRect() 将对话框单位转换为像素,我该如何做相反的事情? MoveWindow() 和 SetWindowPos() 可以设置对话框的 eh 大小,但不能设置 默认 大小。我也尝试过这样的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是320,dialogUnitY是192,但是当我将对话单元设置为320 * 192时,我在CXXXDlg::OnSize(UINT nType, int cx, int cy)中得到的不是640 * 384而是560 * 336。有什么想法吗?
【问题讨论】: