VC程式設計,使子視窗在父視窗居中的方法

2021-06-18 13:24:22 字數 900 閱讀 3704

如果要讓視窗內的乙個控制項在父視窗的客戶區居中,或在某一位置,可以用setwindowpos,注意裡面的第三個和第四個引數是相對于父視窗的客戶區的座標的,父視窗的客戶區的座標的左上角left,top都是0

如果在父視窗裡彈出乙個dialogbox子視窗,這時你可能希望這個dialogbox在父視窗的客戶區居中顯示,你只需要在這個dialogbox的wm_initdialog處理函式裡加入以下**:

rect rcdlg;

getwindowrect(hdlg, &rcdlg);

rect rcparent;

hwnd hwndparent = getparent(hdlg);

getclientrect(hwndparent, &rcparent);

point ptparentinscreen;

ptparentinscreen.x = rcparent.left;

ptparentinscreen.y = rcparent.top;

::clienttoscreen(hwndparent, (lppoint)&ptparentinscreen);

setwindowpos(hdlg, null, ptparentinscreen.x + (rcparent.right - rcparent.left - (rcdlg.right - rcdlg.left)) / 2, ptparentinscreen.y + (rcparent.bottom - rcparent.top - (rcdlg.bottom - rcdlg.top)) / 2, 0, 0,  swp_nozorder | swp_nosize);

需要注意的是這裡的setwindowpos的第三個引數和第四個引數的值是螢幕座標,而非父視窗的客戶區座標,這和msdn裡提到的「in client coordinates」有出入。

C 在子視窗中呼叫父視窗的方法

基本思想 1.c 中的每個form 窗體 都是class 類 2.每個form都有乙個mdiparent 屬性 設定或者獲取此窗體的當前多文件介面 mdi 的父窗體 具體實現 本例假設在父窗體 窗體類名 main 上有乙個方法setmainmenu 子窗體要呼叫該方法。1 父視窗定義setmainm...

父視窗和子視窗的互調

1.jquery 在iframe子頁面獲取父頁面元素 如下 objid parent.document 2.jquery在父頁面 獲取iframe子頁面的元素 如下 objid document.frames iframename document 3.js 在iframe子頁面獲取父頁面元素 如下...

子視窗重新整理父視窗的問題

情況 用window.open 開啟子視窗時候,如果子視窗要得到父視窗頁面的某乙個值,有兩種辦法 第一種將父視窗的那個值儲存到formbean中然後在子視窗中用隱藏域得到,第二種就是在子視窗中用window.opener.document.getelementbyid value 此時在子視窗做了某...