gpt4 book ai didi

c++ - 如何使用 WTL 拒绝调整窗口大小?

转载 作者:行者123 更新时间:2023-11-30 04:09:47 28 4
gpt4 key购买 nike

这个问题问懂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;
}

谢谢!!!

最佳答案

最简单的方法是更改​​窗口样式并删除 sizing frame style从那里:

Window.ModifyStyle(WS_THICKFRAME, 0);

否则你也可以处理WM_WINDOWPOSCHANGING , WM_GETMINMAXINFO窗口上的消息并限制窗口大小。

请注意,您在上述问题中引用的窗口创建是针对 View 的,即针对子窗口的。这不是您要阻止调整大小的窗口。

关于c++ - 如何使用 WTL 拒绝调整窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20948269/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com