1. 程式人生 > >moveWindow函式用法詳解

moveWindow函式用法詳解

moveWindow()函式用於改變視窗的位置和尺寸

格式如下:

BOOL moveWindow( const string& winname,int x, int y, int Width, int Height,BOOL bRepaint = TRUE);

引數說明:

第一個引數:視窗名字

第二個引數x和第三個引數y:表示視窗左上角的座標

第四個引數:視窗的寬度

第五個引數:視窗的高度

第六個引數:bRepaint表示是否立即重繪。為true時系統會立即傳送WM_PAINT到視窗程式(會呼叫UpdateWindow()函式),為false時不會發生任何型別的重繪操作。


下邊用例子來直觀展示設定的效果:

有兩個視窗顯示圖:WINDOW_NAME1和WINDOW_NAME2,視窗的寬度和高度都為WINDOW_WIDTH

看第一種情況的效果:WINDOW_NAME1設定為(0, 200),WINDOW_NAME1設定為(WINDOW_WIDTH, 200):

 imshow(WINDOW_NAME1, atomImage);
 moveWindow(WINDOW_NAME1, 0, 200);
 imshow(WINDOW_NAME2, rookImage);
 moveWindow(WINDOW_NAME2, WINDOW_WIDTH, 200);

執行效果為(即兩幅圖是緊貼著的,縱座標都為200,所以是平齊的):


看第二種情況的效果:WINDOW_NAME1設定為(0, 200),WINDOW_NAME1設定為(WINDOW_WIDTH+100, 200):

    imshow(WINDOW_NAME1, atomImage);
    moveWindow(WINDOW_NAME1, 0, 200);
    imshow(WINDOW_NAME2, rookImage);
    moveWindow(WINDOW_NAME2, WINDOW_WIDTH+100, 200);

指向效果為(即兩幅圖橫向有一個間隔,距離100,紅色方框表示,縱座標相同,所以是齊的。): 


 看第二種情況的效果:

WINDOW_NAME1設定為(0, 200),WINDOW_NAME1設定為(WINDOW_WIDTH+100, 100):

    imshow(WINDOW_NAME1, atomImage);
    moveWindow(WINDOW_NAME1, 0, 200);
    imshow(WINDOW_NAME2, rookImage);
    moveWindow(WINDOW_NAME2, WINDOW_WIDTH+100, 100);

 執行效果(由於兩幅圖的橫縱設定都不同,所以在橫座標和縱座標都有一個間隔,紅色方框所示):