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个像素并居中视图。 –