通过更改对话框字体来适应系统的变化
int cx = GetWindowDC()->GetDeviceCaps(LOGPIXELSX);
if(GetSystemMetrics(SM_CXSCREEN) < 800 and cx > 96)
    CDialog::SetFont(small font);
else
    CDialog::SetFont(large font);

解决方案 »

  1.   

    注册表 HKEY_LOCAL_MACHINE\Config\0001\Display\Fonts下有大小字体信息
    用VC直接读注册表即可
      

  2.   

    不幸的是Jackzhu的方法对我的不管用...
    我是在CMainFrame::OnCreate()中, 创建以对话资源为模板的一个CDialogBar.
    此时使用SetFont()是不行的.
    似乎VC的框架对不同的显示模式, 有一个"自适应". 更憋气的是,在CDialogBar中
    我用了CBitMapButton(按钮上Bitmap图片可是死性的)...呵呵, 不同模式下的显示效果可就是一团糟了.
       看来,我只有用sayno的办法了? 这可是一个痛苦的决定喔...还有更好的办法吗?
    ----同志们.