对话框使用对话框单位(Dialog Unit)。横向的一个对话框单位等于对话框基本单位(Dialog Base Unit)的1/4宽,纵向的一个对话框单位等于对话框基本单位的1/8。横向的对话框基本单位等于系统字体的平均宽度,纵向的对话框基本单位等于系统字体的平均高度。
说白了就是:
pixelX = (dialogunitX * baseunitX) / 4
pixelY = (dialogunitY * baseunitY) / 8
或:
dialogunitX = (pixelX * 4) / baseunitX
dialogunitY = (pixelY * 8) / baseunitY
其中的baseunit可以通过GetDialogBaseUnits获得。
还可以使用函数MapDialogRect将dialogunit转化为pixel。
也就是说,对话框实际的像素大小将和字体有关。
说白了就是:
pixelX = (dialogunitX * baseunitX) / 4
pixelY = (dialogunitY * baseunitY) / 8
或:
dialogunitX = (pixelX * 4) / baseunitX
dialogunitY = (pixelY * 8) / baseunitY
其中的baseunit可以通过GetDialogBaseUnits获得。
还可以使用函数MapDialogRect将dialogunit转化为pixel。
也就是说,对话框实际的像素大小将和字体有关。
因为我是菜鸟,能不能再详细一点,需要修改哪里才能指定对话框大小用象素为单位
尽管如此,你还是可以用这个字体根据上面的公式来大概估算对话框的大小,但不能保证都很精确。
最后说明一点,即使VC的对话框编辑器显示的对话框大小也不见得与对话框实际运行时的大小一致——虽然它已经能够根据字体调整大小。你可以试着将对话框字体设为MS Sans Serif,8号尺寸,就可以看到这一点。