EVC4.0,如何调整程序界面对话框尺寸和屏幕一样大小?
愤怒的东东 2015-03-11 04:21:29 如题,EVC4.0手机模拟器屏幕分辨率是320*240的,程序界面设计的对话框大的话显示不全,如何改变对话框尺寸和屏幕一样,并且控件大小也随着变。我解决方法如下:
/////////////////////////////////////////////////////////////////////////////////////////////////
//1.获得屏幕尺寸
int cxClient=::GetSystemMetrics(SM_CXSCREEN); //屏幕尺寸
int cyClient=::GetSystemMetrics(SM_CYSCREEN); //屏幕尺寸
int cbClient=::GetSystemMetrics(SM_CYCAPTION); //标题栏窗口高度
CRect rtClient,rtBtn;
CWnd *pWnd=GetDlgItem(IDC_BUTTON1);
//2.获得对话框客户区屏幕尺寸
GetClientRect(&rtClient); //获取对话框坐标
ClientToScreen(&rtClient); //映射为屏幕坐
//3.获得button控件尺寸
pWnd->GetWindowRect(&rtBtn);
//4.求变化系数(现在屏幕尺寸比上原对话框尺寸)
int scale = cxClient/rtClient.Width();
//5.求的现有对话框当前RECT
rtBtn.left = rtBtn.left*scale;
rtBtn.top = rtBtn.top*scale;
rtBtn.right = rtBtn.right*scale;
rtBtn.bottom = rtBtn.bottom*scale;
MoveWindow(CRect(0,0+cbClient,cxClient,cyClient)); //移动窗口
pWnd->MoveWindow(rtBtn); //移动button
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在第二步出现了问题,我原意是获取程序开发时设计界面对话框大小,而实际获得的是292*240,是模拟器手机屏幕的客户区分辨率,所的变化比例系数永远是1,没有变化。求指教。