MFC_MoveWindow窗口、控件的大小、位置调整

同一个资源文件,在不同的地方显示不同,比如:

只需要把第一个界面,隐藏【数据提交详情】部分,按钮移动到合适位置,对话框调整大小就可以得到第二个对话框。

具体代码:

//获得按钮移动的高度
CRect rectStatic;
GetDlgItem(IDC_STATIC_RESULT)->GetWindowRect(rectStatic);
int nVal = rectStatic.Height();

//移动按钮
CRect rectBtn;
CWnd* wndMove = GetDlgItem(IDOK);
wndMove->GetWindowRect(rect);

ScreenToClient(rect);
if (rect.top > nTop)
    rect.top = rect.top - nTop;

if (rect.bottom > nBottom)
    rect.bottom = rect.bottom - nBottom;

wndMove->MoveWindow(rect);

//移动窗口
CRect rectDlg;// 对话框域
GetWindowRect(rectDlg);

CRect recWindow;
HWND hwnd = ::GetDesktopWindow();
::GetWindowRect(hwnd,recWindow);

CRect rectBtn;// 定位按钮域
GetDlgItem(IDC_BTN_LOCATION)->GetWindowRect(rectBtn);

if (rectDlg.bottom < rectBtn.bottom)
     return;

rectDlg.bottom = rectBtn.top + rectBtn.Height() + 10;

MoveWindow(rectDlg);

猜你喜欢

转载自my.oschina.net/u/2930533/blog/1630550
今日推荐