想请教以下问题?
我现在用VB编写了两个程序(分别为one.exe各two.exe)one.exe很简单就是一个窗体Form1,在这个Form1上有一个按钮Command1。
现在就是如何通过two.exe程序来获得one.exe程序Command1的窗体句柄,并通过Findwindow,GetClientRect等API来改变Command1大小?
理伦上已完全通过,但落实代码实现确无从下手,因为我对API不是很熟悉,那位高手能帮我一下,贴出相应代码,在此感激不尽!谢谢
我现在用VB编写了两个程序(分别为one.exe各two.exe)one.exe很简单就是一个窗体Form1,在这个Form1上有一个按钮Command1。
现在就是如何通过two.exe程序来获得one.exe程序Command1的窗体句柄,并通过Findwindow,GetClientRect等API来改变Command1大小?
理伦上已完全通过,但落实代码实现确无从下手,因为我对API不是很熟悉,那位高手能帮我一下,贴出相应代码,在此感激不尽!谢谢
GetClientRect函数是用来做什么的,是不是获得大小?
那设置大小的API函数是什么?
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 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 Sub Command1_Click()
Dim lngFrmHwnd As Long
Dim lngBtnHwnd As Long
Dim x, y, i As Long
lngFrmHwnd = FindWindow(vbNullString, "Form1") '找到窗口标题为Form1的窗口
If lngFrmHwnd > 0 Then
lngBtnHwnd = FindWindowEx(lngFrmHwnd, ByVal 0&, "ThunderCommandButton", "Command1") 'ThunderCommandButton是按钮类,找名称为command1的按钮
End If
Debug.Print lngFrmHwnd, lngBtnHwnd
If lngBtnHwnd > 0 Then
Call SetWindowPos(lngBtnHwnd, HWND_TOP, 22, 33, 333, 444, SWP_NOZORDER)'设置大小,22为x,33为y,333为宽,444为高
End If
End Sub
HWND_TOP SWP_NOZORDER 变量未定义?因把它设置成什么呢?
Const SWP_NOZORDER = &H4 加上上面两句,放到程序顶端
马上结贴,给分!