怎么让支持分辨率320*240的程序也支持640*480
如何让支持分辨率320*240的程序也支持640*480现在的程序在320*240的分辨率下显示是正常的,但是放到640*480
如何让支持分辨率320*240的程序也支持640*480 现在的程序在320*240的分辨率下显示是正常的,但是放到640*480时,控件就显示不正常了,有些显示一半,有些直接就显示不出来了!请问我要如何控制在不同分辨率下控件的显示? 我现在的做法是将正常显示的控件移动在X,Y方向上作移动,将空间移动到X*比率 Y*比率(比率=现在的分辨率/正常显示的分辨率)的位置,长度和宽度不变 这样显示的效果,并没有按预想的是显示正常的?不知道是不是哪里没调整对,还是这思路就有问题的,望高手指点一二![解决办法] 首先要关闭模拟层,这样可以去掉高版本手机对低版本程序的分辨率屏蔽 将下行添加到您的资源文件中: HI_RES_AWARE CEUX {1} // To turn off the emulation layer 然后获取屏幕的分辨率 int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_CYSCREEN); 响应Onsize函数 参考 http://msdn.microsoft.com/zh-cn/windowsmobile/ms838191.aspx[解决办法] 最好的方法就是做两套资源 如果只是一套资源,那就只能拉伸了, 这样效果不太好,用strchbit函数[解决办法]
探讨 最好的方法就是做两套资源 如果只是一套资源,那就只能拉伸了, 这样效果不太好,用strchbit函数[解决办法] 取得当前设备分辨率,用分辨率做条件判断,读取哪套资源。
并根据分辨率做相应的位置、大小调整。
[解决办法] 就是微软对屏幕分辨率的一种屏蔽,用evc4写的ppc2003的程序在分辨率高于240*320的手机上(如800*480的)运行,使用GetSystemMetrics(SM_CXSCREEN)得到的仍然是240而不是480.需要用文本编辑器打开rc文件,添加语句HI_RES_AWARE CEUX {1} // To turn off the emulation layer ,这样就可以得到正确的屏幕分辨率。
得到了正确的屏幕分辨率之后,就可以在onsize函数中使用movewindow函数来调整位置和大小,当然,使用的参数要使用诸如rc.width()*1/3之类的,确保从左边三分之一处放控件。对于带文字的按钮之类的,一般使用pDC->GetTextExtent(str)来获得文字的Size,从而确定按钮大小。
总之如果使用的是纵横分辨率或客户区的百分比,而不是像素点来movewindow,你的程序就可以适应各种分辨率
探讨 @wangarrb 请问下,这模拟层是啥意思啊,要怎么关闭,看了你跟的参考链接,还是不清楚 另外获取分辨率后, int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_CYSCREEN); 响应的OnSize函数要传啥参数了? OnSize里又需要做什么处理了?[解决办法] 做两套资源和坐标数组是正确做法,其他方法都不理想。
[解决办法] configuiation Properties->Linker->Command Line把5.01改成4.20,在320*240 或者640*480的设备上都能运行了