代码没有问题,可能是句柄不对。下面的代码,可以将记事本最大化: Option ExplicitPublic Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Const WM_SYSCOMMAND = &H112Public Const SC_MAXIMIZE = &HF030& Option ExplicitPrivate Sub Command1_Click() Dim hwnd As Long hwnd = FindWindow("Notepad", vbNullString)
SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0& End Sub
没那么复杂,简单一点,用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 = 3Private Sub Form_Load() ShowWindow lHwnd,SW_MAXIMIZE'lHwnd是已知一个窗体的句柄 End Sub
Option ExplicitPublic Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Const WM_SYSCOMMAND = &H112Public Const SC_MAXIMIZE = &HF030&
Option ExplicitPrivate Sub Command1_Click()
Dim hwnd As Long hwnd = FindWindow("Notepad", vbNullString)
SendMessage hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&
End Sub
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_MAXIMIZE As Long = 3Private Sub Form_Load()
ShowWindow lHwnd,SW_MAXIMIZE'lHwnd是已知一个窗体的句柄
End Sub