怎樣改變窗口尺寸和移動窗口
怎樣改變窗口尺寸和移動窗口
今天學(xué)習(xí)啦小編給大家介紹一下怎樣改變窗口尺寸和移動窗口吧。供大家參考!
電腦基礎(chǔ)知識-改變窗口尺寸和移動窗口
參考如下:
改變窗口尺寸:
一是移動鼠標(biāo)到窗口上下左右邊框上,當(dāng)看到鼠標(biāo)變成上下或左右雙箭頭時,按下鼠標(biāo)左鍵不要松開,然后拖動窗口邊框到合適的地方放開鼠標(biāo)左鍵。
二是移動鼠標(biāo)到窗口任意一角當(dāng)看到鼠標(biāo)變成斜雙箭頭時,按下鼠標(biāo)左鍵不要松開,然后拖動鼠標(biāo)到合適的地方放開左鍵。
三是利用控制菜單命令改變窗口大小。
移動窗口:
一是移動鼠標(biāo)到窗口標(biāo)題欄,按下鼠標(biāo)左鍵不要松開,然后拖動鼠標(biāo)到合適的地方放開左鍵。
二是移動鼠標(biāo)到任務(wù)欄,右鍵單擊要移動的窗口名稱,在彈出菜單中單擊選中“移動”,然后移動鼠標(biāo)到要移動的窗口標(biāo)題欄,按下鼠標(biāo)左鍵不要松開,拖動鼠標(biāo)到合適的地方再放開左鍵。
三是利用控制菜單命令移動窗口。
關(guān)鍵函數(shù):
GetWindowRect(LPRECT)
GetClientRect(LPRECT)
ScreenToClient(LPRECT)
MoveWindow(LPRECT)
(注:這里四個函數(shù)的參數(shù)既可以是CRect,也可以是CRect*)
CWnd::GetWindowRect() 的作用是獲取CWnd 窗口的坐標(biāo)位置,這個位置是以屏幕左上角為原點。(順便說一下,在窗口OnInitDialog 函數(shù)執(zhí)行的時候,窗口的左上角是與屏幕左上角相重合的,在OnInitDialog 執(zhí)行結(jié)束之后才被移動到屏幕中央并顯示。)
CWnd::GetClientRect() 的作用也是獲取CWnd 窗口的坐標(biāo)位置,但是這個位置是以該CWnd 窗口自己的客戶區(qū)(不包括框架)左上角為原點,也就是說用這個函數(shù)獲取的CRect 的left 和top 都一定是0.
用上面兩個函數(shù)獲取到了窗口的坐標(biāo)CRect 之后、可以通過對CRect 的top、left、right、bottom 進(jìn)行修改來設(shè)置一個想要的窗口的大小與位置。最后用MoveWindow() 函數(shù)就可以把窗口移動到新的CRect 指定的矩形區(qū)里去、并改變大小了。
假設(shè)現(xiàn)在有一個CDialog m_ChildDlg,則可以 m_ChildDlg.MoveWindow(rect); 注意,這里面的rect 必須是以m_ChildDlg 的父窗口為參照系的坐標(biāo)位置。如果m_ChildDlg 沒有父窗口,那么屏幕桌面就是它的父窗口。這時可以直接 m_ChildDlg.GetWindowRect(rect); 再m_ChildDlg.MoveWindow(rect);
但如果m_ChildDlg 有自己的父窗口呢?分兩種情況:
1、m_ChildDlg 的左上角頂點坐標(biāo)與其父窗口的客戶區(qū)的左上角頂點坐標(biāo)重合。這時可以m_ChildDlg.GetClientRect(rect); 再m_ChildDlg.MoveWindow(rect);
2、否則。假設(shè)其父窗口是CDialog m_PDlg,這時必須m_ChildDlg.GetWindowRect(rect); 然后m_PDlg.ScreenToClient(rect); 最后才能m_ChildDlg.MoveWindow(rect);
如果MoveWindow之后,界面上顯示有問題,不妨試一下InvalidateRect(rect);//添加重繪區(qū)。
UpdateWindow(); //發(fā)送并立即處理WM_PAINT,使重繪區(qū)重畫。
學(xué)習(xí)啦小編介紹了怎樣改變窗口尺寸和移動窗口的相關(guān)知識:,希望你喜歡。