mfc獲取控制項在對話方塊上的位置

2021-09-25 11:40:50 字數 371 閱讀 9344

注意:控制項的getwindowrect方法是獲取控制項相對於螢幕的位置,

而對於子控制項的movewindow方法引數座標則是相對于父視窗的位置。

我們不能直接將getwindowrect

獲取到的值直接傳遞給movewindow,而需要一種轉換。

該方法就是screentoclient。具體使用方法如下:

crect rect;

getdlgitem(控制項id)->getwindowrect(&rect);//獲取控制項的螢幕座標

screentoclient(&rect);//轉換為視窗的的客戶區座標

screentoclient是將矩形的座標從相對於螢幕轉換到相對於視窗客戶區。

MFC 獲取控制項在對話方塊上的座標位置

crect rectl,rectr getdlgitem idc pic1 getwindowrect rectl 獲取控制項相對於螢幕的位置 screentoclient rectl 轉化為對話方塊上的相對位置 getdlgitem idc pic2 getwindowrect rectr 獲取控...

MFC中對話方塊上控制項隨著介面變化而變化的實現

首先說明一下縮放實現步驟 先在oninitdialog 中獲取當前客戶區的大小,然後呼叫wm size事件處理函式onsize 然後就是具體的實現過程,見下圖 實現。1 先在標頭檔案中新增以下 protected crect m rect void resize void point old 2 然...

MFC 動態改變對話方塊控制項位置尺寸

題記 第一種方法實踐時無法同時改變兩個控制項的位置,不知為何 用cwnd類的函式movewindow 或setwindowpos 可以改變控制項的大小和位置。void movewindow int x,int y,int nwidth,int nheight void movewindow lpcr...