这个问题 其实是一个最实用 而且很难搞清楚的问题 希望各位耐心 全面 仔细的给在下讲解以及分析 最好有源代码可以供参考 因为好多时候即使明白了各位的意思 但是却不知道在哪个位置加代码 至今这个问题没有一个人能真正解决问题描述:当在宽屏界面下做的程序 分辨率是 1440 X 900 程序的界面里有圆 有控件 (圆都是正圆) 但是当改变此电脑分辨率时 如改变到1024 X 768 或者 800 X 600 时 圆就变形了 变成了扁的 而且有的圆超出了圆的外接矩形 尤其是在800*600的情况下 矩形里面的圆和其他图形 都超出矩形的边界 我想达到一种效果:无论电脑分辨率改变成什么 都叫图形是正圆 而且圆不超出它外接矩形的边界 或者可以这样说 我的理解就是锁定控件以及图形的尺寸 但是我觉得这个代码我一点思路都没有 所以请高手讨论一下 到底怎么解决 到底是什么原因引起的圆的变形 以及圆为何超出外接矩形的边界。。我说过了 这个问题实用 且难解决 希望大家仔细 认真讨论 越全面越好 代码希望也拿出来共享一下
GetSystemMetrics(SM_CXSCREEN)
GetSystemMetrics(SM_CYSCREEN)获得屏幕大小,然后根据得到的结果进行自己计算处理,进一步得到圆的半径
像素都还不够精确,Windows在屏幕上绘图的时候使用的单位是一种叫Tiwp的东西,至今不知道中文应该叫什么.只要能够在不同分辨率下得到相应长度的twip值就可以实现楼主的要求了.不过这方面的细节我也正在查资料,知道的兄弟说一声!
if (IsWindow(m_font00.GetSafeHwnd())) {
m_font00.MoveWindow((int )x*0.04,( int )y*0.07,( int )(50*rate1),( int )(800*rate2),TRUE);
}