怎样改变窗口尺寸和移动窗口

发布时间:2017-03-21 15:55

今天小编给大家介绍一下怎样改变窗口尺寸和移动窗口吧。供大家参考!

电脑基础知识-改变窗口尺寸和移动窗口

参考如下:

改变窗口尺寸:

一是移动鼠标到窗口上下左右边框上,当看到鼠标变成上下或左右双箭头时,按下鼠标左键不要松开,然后拖动窗口边框到合适的地方放开鼠标左键。

二是移动鼠标到窗口任意一角当看到鼠标变成斜双箭头时,按下鼠标左键不要松开,然后拖动鼠标到合适的地方放开左键。

三是利用控制菜单命令改变窗口大小。

移动窗口:

一是移动鼠标到窗口标题栏,按下鼠标左键不要松开,然后拖动鼠标到合适的地方放开左键。

二是移动鼠标到任务栏,右键单击要移动的窗口名称,在弹出菜单中单击选中“移动”,然后移动鼠标到要移动的窗口标题栏,按下鼠标左键不要松开,拖动鼠标到合适的地方再放开左键。

三是利用控制菜单命令移动窗口。

关键函数:

GetWindowRect(LPRECT)

GetClientRect(LPRECT)

ScreenToClient(LPRECT)

MoveWindow(LPRECT)

(注:这里四个函数的参数既可以是CRect,也可以是CRect*)

CWnd::GetWindowRect() 的作用是获取CWnd 窗口的坐标位置,这个位置是以屏幕左上角为原点。(顺便说一下,在窗口OnInitDialog 函数执行的时候,窗口的左上角是与屏幕左上角相重合的,在OnInitDialog 执行结束之后才被移动到屏幕中央并显示。)

CWnd::GetClientRect() 的作用也是获取CWnd 窗口的坐标位置,但是这个位置是以该CWnd 窗口自己的客户区(不包括框架)左上角为原点,也就是说用这个函数获取的CRect 的left 和top 都一定是0.

用上面两个函数获取到了窗口的坐标CRect 之后、可以通过对CRect 的top、left、right、bottom 进行修改来设置一个想要的窗口的大小与位置。最后用MoveWindow() 函数就可以把窗口移动到新的CRect 指定的矩形区里去、并改变大小了。

假设现在有一个CDialog m_ChildDlg,则可以 m_ChildDlg.MoveWindow(rect); 注意,这里面的rect 必须是以m_ChildDlg 的父窗口为参照系的坐标位置。如果m_ChildDlg 没有父窗口,那么屏幕桌面就是它的父窗口。这时可以直接 m_ChildDlg.GetWindowRect(rect); 再m_ChildDlg.MoveWindow(rect);

但如果m_ChildDlg 有自己的父窗口呢?分两种情况:

1、m_ChildDlg 的左上角顶点坐标与其父窗口的客户区的左上角顶点坐标重合。这时可以m_ChildDlg.GetClientRect(rect); 再m_ChildDlg.MoveWindow(rect);

2、否则。假设其父窗口是CDialog m_PDlg,这时必须m_ChildDlg.GetWindowRect(rect); 然后m_PDlg.ScreenToClient(rect); 最后才能m_ChildDlg.MoveWindow(rect);

如果MoveWindow之后,界面上显示有问题,不妨试一下InvalidateRect(rect);//添加重绘区。

UpdateWindow(); //发送并立即处理WM_PAINT,使重绘区重画。

小编介绍了怎样改变窗口尺寸和移动窗口的相关知识:,希望你喜欢。

怎样改变窗口尺寸和移动窗口的评论条评论