学习啦>学习电脑>网络知识>网络基础知识>

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

春健分享

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

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

  参考如下:

  改变窗口尺寸:

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

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

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

  移动窗口:

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

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

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

  关键函数:

  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,使重绘区重画。

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

    578133