自适应对话框解决方案
自适应对话框
现在我用vs2008下的MFC做了一个对话框程序
拿到客户那边用发现他是15寸的显示屏
我的软件有点大了
现在我想把我的软件做成自适应
这个对话框如何更具屏幕的大小自己调整大小?
请教各位大侠
------解决方案--------------------
现在我用vs2008下的MFC做了一个对话框程序
拿到客户那边用发现他是15寸的显示屏
我的软件有点大了
现在我想把我的软件做成自适应
这个对话框如何更具屏幕的大小自己调整大小?
请教各位大侠
------解决方案--------------------
BOOL Zoom_Window(HWND hWnd, CRect TaregetEX_Pos, LPRECT mOrgRect=NULL, BOOL bZoomEx_Only=FALSE)
{
if(hWnd)
{
BOOL IsVisable = IsWindowVisible(hWnd);
if(!bZoomEx_Only)
{
::SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOZORDER
------解决方案--------------------
SWP_NOSIZE
------解决方案--------------------
SWP_HIDEWINDOW);
CRect SrcWndRect;
if(mOrgRect)
{
SrcWndRect = mOrgRect;
}
else
{
GetWindowRect(hWnd,&SrcWndRect);
}
DWORD style = GetWindowLong(hWnd, GWL_STYLE);
INT_PTR Board_dx = 0, Board_dy = 0;
if( WS_CAPTION == (style & WS_CAPTION) )
{
Board_dy += GetSystemMetrics(SM_CYCAPTION);
}
if( WS_DLGFRAME == (style & WS_DLGFRAME) )
{
Board_dx += 2 * GetSystemMetrics(SM_CXBORDER);
Board_dy += 2 * GetSystemMetrics(SM_CYBORDER);
}
else if( WS_BORDER == (style & WS_BORDER) )
{
Board_dx += GetSystemMetrics(SM_CXBORDER);
Board_dy += GetSystemMetrics(SM_CYBORDER);
}
else
{
}
double dx = (double)(TaregetEX_Pos.Width() - Board_dx) / (double)(SrcWndRect.Width() - Board_dx);
double dy = (double)(TaregetEX_Pos.Height() - Board_dy) / (double)(SrcWndRect.Height() - Board_dy);
HWND hChild = ::GetWindow(hWnd, GW_CHILD);
while(hChild != NULL)
{
CRect rect;
GetWindowRect(hChild, &rect);
CPoint pt_lt(rect.left, rect.top);
ScreenToClient(hWnd, &pt_lt);
MoveWindow(hChild,