我有一些獨特的按鈕,我只想一次顯示其中的一個。我希望它們居中,所以我有第一個按鈕居中對話框。如果我想顯示第三個按鈕,我想給它第一個按鈕座標並隱藏第一個按鈕。如何將對話框位置座標複製到另一個對話框中?
如何複製按鈕座標並將其他按鈕座標設置爲複製值?
Ex。可以說我有...
PB_ONE
PB_TWO
我怎樣才能抓住PB_ONE的座標,並設定PB_TWO的座標PB_ONE?
RECT rcButton;
GetWindowRect(GetDlgItem(hDlg, PB_ONE), &rcButton);
上面的代碼抓取了我想從中複製座標的對話框項目。是否有一個簡單的命令,將另一個對話框按鈕設置爲此對話框的座標?
像SetDlgItem()?
用新的代碼已更新我嘗試基於OFF答案
GetWindowRect(GetDlgItem(hDlg, PB_ONE), &rcButton);
ClientToScreen(hDlg, &p);
OffsetRect(&rcButton, -p.x, -p.y);
SetWindowPos(GetDlgItem(hDlg, PB_TWO), 0, rcButton.left, rcButton.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
ShowWindow(GetDlgItem(hDlg, PB_TWO), SW_SHOW);
有電流,PX和rcButton.top硬值替換rcButton.left和rcButton.top得到按鈕位置上對話框。
這將在SetWindowPos中返回一個錯誤,其中參數3不能將LONG *轉換爲INT。
確保'p.x = 0; p.y = 0;'在調用'ClientToScreen'之前。同時隱藏'PB_ONE'。你說你已經將'&rcButton.left'改爲'rcButton.left'? –
是的,我改變了他們。但是,這些座標始終不在屏幕上。我必須使用px而不是rcButton.left才能真正獲得正確的按鈕位置 – user3622460