怎樣改變視窗尺寸和移動視窗

  今天小編給大家介紹一下吧。供大家參考!

  電腦基礎知識-改變視窗尺寸和移動視窗

  參考如下:

  改變視窗尺寸:

  一是移動滑鼠到視窗上下左右邊框上,當看到滑鼠變成上下或左右雙箭頭時,按下滑鼠左鍵不要鬆開,然後拖動視窗邊框到合適的地方放開滑鼠左鍵。

  二是移動滑鼠到視窗任意一角當看到滑鼠變成斜雙箭頭時,按下滑鼠左鍵不要鬆開,然後拖動滑鼠到合適的地方放開左鍵。

  三是利用控制選單命令改變視窗大小。

  移動視窗:

  一是移動滑鼠到視窗標題欄,按下滑鼠左鍵不要鬆開,然後拖動滑鼠到合適的地方放開左鍵。

  二是移動滑鼠到工作列,右鍵單擊要移動的視窗名稱,在彈出選單中單擊選中“移動”,然後移動滑鼠到要移動的視窗標題欄,按下滑鼠左鍵不要鬆開,拖動滑鼠到合適的地方再放開左鍵。

  三是利用控制選單命令移動視窗。

  關鍵函式:

  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,使重繪區重畫。

  小編介紹了的相關知識:,希望你喜歡。