&&&&&窗体句柄&&&&&
想请教以下问题?
我现在用VB编写了两个程序(分别为one.exe各two.exe)one.exe很简单就是一个窗体Form1,在这个Form1上有一个按钮Command1。
现在就是如何通过two.exe程序来获得one.exe程序Command1的窗体句柄,并通过Findwindow,GetClientRect等API来改变Command1大小?
理伦上已完全通过,但落实代码实现确无从下手,因为我对API不是很熟悉,那位高手能帮我一下,贴出相应代码,在此感激不尽!谢谢
问题点数:100、回复次数:9Top
1 楼gggitxai(.只有我想不到的-没有我做不了得.)回复于 2005-05-18 05:26:11 得分 0
用FindWindow获得窗体句柄
GetClientRect函数是用来做什么的,是不是获得大小?
那设置大小的API函数是什么?Top
2 楼MmMVP(杜霖:(现在是DooDu的马甲。。))回复于 2005-05-18 07:28:38 得分 0
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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 SubTop
3 楼DooDu(杜霖:I want,I can(开关拉))回复于 2005-05-18 07:30:06 得分 100
汗。。。。用错id了,要给分直接给小号~~DooDu,那个mmmvp不用了现在~~~Top
4 楼mydo(侯佩|hopy|ks)回复于 2005-05-18 07:32:43 得分 0
GetClientRect 返回指定視窗客戶區矩形的大小Top
5 楼penguinMII(企鹅)回复于 2005-05-18 08:23:52 得分 0
帮顶,学习Top
6 楼gggitxai(.只有我想不到的-没有我做不了得.)回复于 2005-05-18 16:25:20 得分 0
谢谢DooDu兄,但你给出的代码有问题,
HWND_TOP SWP_NOZORDER 变量未定义?因把它设置成什么呢?Top
7 楼DooDu(杜霖:I want,I can(开关拉))回复于 2005-05-18 19:19:21 得分 0
Const HWND_TOP=0
Const SWP_NOZORDER = &H4
加上上面两句,放到程序顶端Top
8 楼gggitxai(.只有我想不到的-没有我做不了得.)回复于 2005-05-18 19:53:37 得分 0
问题解决,再次感谢DooDu兄的帮助,谢谢!:)
马上结贴,给分!Top
9 楼slwang2003(wsl)回复于 2005-06-21 10:29:34 得分 0
学习
Top




