VC 窗口大小 限制窗口大小
其实方法很多的,这里列出几个比较常见的方法来,
这里是以SDI的框架窗口为例子来试验的。
1.创建一个最大化的窗口,并且不能改变其大小
那么首先,
app的InitInstance中
在原来pMainFrame->ShowWindow(m_nCmdShow);
的前面加上
DWORD dwStyle = GetWindowLongm_pMainWnd->m_hWnd, GWL_STYLE);
// dwStyle &= ~(WS_SIZEBOX);
dwStyle &= ~(WS_MAXIMIZEBOX);
dwStyle &= ~(WS_MINIMIZEBOX);
SetWindowLong(m_pMainWnd->m_hWnd, GWL_STYLE, dwStyle);
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
然后把m_pMainWnd->ShowWindow(m_nCmdShow);可以删了
这里我把dwStyle &= ~(WS_SIZEBOX);注释调了,因为把这个属性去掉的话,会产生麻烦,就是我这个窗口最大话显示的时候,
会把任务栏也遮了,靠,实在是另人郁闷
但是如果不把这个属性去掉的话,那么通过拖拉,还是可以改变这个窗口的大小的,那怎么办呢,
真伤脑筋阿,换个思路吧
一般窗口大小的改变,都是用户拖动窗口边框而造成的。所以,我们可以截获主窗口消息WM_NCHITTEST在其响应函数中判断CWnd:: _disibledevent= 200;
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
这样的话,窗口就被我框死啦,嘿嘿
长和宽的范围都是100-200
当然
MINMAXINFO这个结构体内容也是非常丰富的,可以做的事很多,具体可以察msdn了。
好了,今天就整理到这了~~
在VC中创建不可改变大小的窗口通常涉及修改窗口样式。通过在App的InitInstance中设置GWL_STYLE,移除WS_SIZEBOX, WS_MAXIMIZEBOX和WS_MINIMIZEBOX属性,然后最大化窗口。然而,单纯移除WS_SIZEBOX会导致窗口最大化时遮挡任务栏。为防止用户拖动边框改变窗口大小,可以通过处理WM_NCHITTEST消息并返回特定值来禁用窗口大小调整。此外,利用OnGetMinMaxInfo函数可以限制窗口的最小和最大尺寸,如设置为100x100到200x200。"
95372111,8670012,抗积分饱和PID控制器实现详解,"['控制理论', '自动化', 'PID调参', '系统控制']
859

被折叠的 条评论
为什么被折叠?



