用api改变窗口大小?

whupyf 2004-04-03 04:54:37
一个窗口
BorderStyle=None '没有标题栏

我希望鼠标拖动右下角可以改变窗口的大小.该怎么办?
...全文
137 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcwak 2004-04-03
  • 打赏
  • 举报
回复
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

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

Private Const SWP_FRAMECHANGED = &H20

Private Const SWP_NOSIZE = &H1

Private Const SWP_NOZORDER = &H4

Private Const SWP_NOMOVE = &H2

Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED

Private Const GWL_EXSTYLE = (-20)

Private Const GWL_STYLE = (-16)

Private Const WS_THICKFRAME = &H40000

Sub Resizecontrol(ctlName As Form, frmName As Form)
Dim NewStyle As Long
NewStyle = GetWindowLong(ctlName.hwnd, GWL_STYLE)
NewStyle = NewStyle Or WS_THICKFRAME
NewStyle = SetWindowLong(ctlName.hwnd, GWL_STYLE, NewStyle)
SetWindowPos ctlName.hwnd, frmName.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub

Private Sub Form_Load()
Resizecontrol Form1, Form1
End Sub
qiangsheng 2004-04-03
  • 打赏
  • 举报
回复
BorderStyle设成Sizable,清除Caption,ControlBox设成False。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧