已知一个窗体的句柄,怎么让它最大化?

zhengjialon 2013-07-18 03:01:03
如果,使用了SendMessage winHwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&
没反应
...全文
346 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2013-07-22
  • 打赏
  • 举报
回复
没那么复杂,简单一点,用ShowWindow:
Option Explicit
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_MAXIMIZE As Long = 3

Private Sub Form_Load()
    ShowWindow lHwnd,SW_MAXIMIZE'lHwnd是已知一个窗体的句柄
End Sub
现在还是人类 2013-07-21
  • 打赏
  • 举报
回复
有几个问题你要明确: 1、你的窗口句柄对了没有? 2、怎么可以确认你是找对了窗口句柄? 3、目标窗口是不是你自己程序的窗口? 如果不是你程序的窗口会不会对方拦截了这类消息就是为了防止你这么干?
of123 2013-07-18
  • 打赏
  • 举报
回复
代码没有问题,可能是句柄不对。 下面的代码,可以将记事本最大化:
Option Explicit

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const WM_SYSCOMMAND = &H112

Public Const SC_MAXIMIZE = &HF030&
Option Explicit

Private Sub Command1_Click()
Dim hwnd As Long

    hwnd = FindWindow("Notepad", vbNullString)
    
    SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&
End Sub

7,763

社区成员

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

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