VB怎么控制窗口大小,只能让他保持这么大?

 我来答
intehel
推荐于2016-04-11 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1757万
展开全部

将窗口的BorderStyle属性设置为Fixed Single即可,如果还需要最小化按钮,将MinButton属性设置为True。



另外,楼上说的SetWindowPos完全不是用来限制窗口大小的,它只是用来设置窗口大小、位置和Z序等而已。

如果要通过其他方法限制窗口大小,可以通过响应WM_GETMINMAXINFO消息来实现(这需要替换窗口过程)


以下内容来自MSDN:

WM_GETMINMAXINFO

The WM_GETMINMAXINFO message is sent to a window when the size or
position of the window is about to change. An application can use this message
to override the window's default maximized size and position, or its default
minimum or maximum tracking size.

A window receives this message through its WindowProc function.

LRESULT CALLBACK WindowProc(
 HWND hwnd,       // handle to window
 UINT uMsg,       // WM_GETMINMAXINFO
 WPARAM wParam,   // not used
 LPARAM lParam    // window information (LPMINMAXINFO)
);

Parameters

wParam

This parameter is not used.

lParam

Pointer to a MINMAXINFO structure that
contains the default maximized position and dimensions, and the default minimum
and maximum tracking sizes. An application can override the defaults by setting
the members of this structure. 

百度网友28a734353
2014-08-02 · TA获得超过312个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:246万
展开全部

您好,您可以使用下面的代码实现:

'在窗体全局声明中加入:
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_NOSIZE = &H1
'……
'在form_load里面写以下代码:
SetWindowPos ,me.Hwnd, 0, 0, 0, 0, 0, SWP_NOSIZE

如果本次回答对您有帮助,请您采纳以支持我们的发展,谢谢 !!

更多追问追答
追问

为什么会出现这种情况,我那个地方打错了?

追答
您好,请您把第一个0改为-2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式