2
我有MFC SDI應用程序。
它具有功能區,狀態欄,屬性窗口,...更改客戶區視圖
我需要使視圖的客戶區域爲x % 16
。 所以我不能調整整個窗口,但我需要調整CMyView
可以被16個像素整除。
有沒有辦法做到這一點?
此代碼不起作用:=(
void CMyView::OnSize(UINT nType, int cx, int cy)
{
cx -= cx % 16;
cy -= cy % 16;
CView::OnSize(nType, cx, cy);
RECT wr = { 0, 0, cx, cy };
AdjustWindowRect(&wr, WS_OVERLAPPEDWINDOW, FALSE);
}
'AdjustWindowRect'不調節任何東西,它僅僅_calculates窗口矩形的所需尺寸,基於所期望的客戶端 - 矩形size_(引文從[MS文檔】(HTTPS:// MSDN .microsoft.com/EN-US /庫/窗/桌面/ ms632665(V = vs.85)的.aspx))。並調用不同大小的'CView :: OnSize'並沒有太大的作用(不記得我讀過的文檔的哪一部分)。 –
你看過使用[MoveWindow](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v = vs.85).aspx)嗎? –
我發現了一些解決方法:1.爲視圖創建額外的子窗口; 2.在調整大小時將其對齊16個像素並居中視圖。 –