对于知道WTL的人来说这个问题! 请告诉我,如何使用WTL拒绝窗口更改自己的大小?或者如何使用WTL创建固定大小的窗口?
这是我在MainFrm.cpp中的代码的一部分,如果我没有弄错它创建窗口:
m_hWndClient = m_view.Create(m_hWnd,rcDefault,NULL,WS_CHILDWINDOW | WS_VISIBLE);
这是我在... View.cpp文件中的代码的一部分,它会调整窗口大小调整:
LRESULT CPictureInCenterView::OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM
/*lParam*/, BOOL& /*bHandled*/)
{
CRect rcClient;
GetClientRect(&rcClient);
clientWidth = rcClient.Width();
clientHeight = rcClient.Height();
if (!m_pBackBuffer.get() ||
(clientWidth > m_pBackBuffer->GetWidth()) ||
(clientHeight > m_pBackBuffer->GetHeight())
)
{
m_pBackBuffer.reset(
new Gdiplus::Bitmap(clientWidth, clientHeight, PixelFormat32bppARGB));
}
return 0;
}
感谢!!!
答案 0 :(得分:2)
最简单的方法是更改窗口样式并从那里删除sizing frame style:
Window.ModifyStyle(WS_THICKFRAME, 0);
否则,您还可以在窗口上处理WM_WINDOWPOSCHANGING
,WM_GETMINMAXINFO
消息并限制窗口大小调整。
请注意,您在上述问题中引用的窗口创建用于视图,即用于子窗口。这不是您想要阻止调整大小的窗口。