这应该是一个简单的:
我有一个带有 2 个按钮的 CDialog。该对话框始终使用全屏打开(无标题栏\状态等...)m_pMainWnd->ShowWindow(SW_MAXIMIZE);
我希望我的按钮捕捉到屏幕的边缘。
没有调整大小或任何东西。
您知道对话框的宽度 (GetClientRect)。你知道按钮的宽度。
假设你正在捕捉到右边缘......
在您的 CDialog::OnSize 内部:
// Grab the CDialog's rect.
CRect winRect;
GetClientRect( &winRect );
// Grab the button's rect.
CRect buttonRect;
button.GetClientRect( &buttonRect );
// Now we need to set the top, left of the button to the right edge - the button width.
// The y position will remain the same.
button.SetWindowPos( NULL, winRect.right - buttonRect.Width(), buttonRect.top, 0, 0, SWP_NOZORDER | SWP_NOMOVE );