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了。
好了,今天就整理到这了~~