CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

&&&&&窗体句柄&&&&&

楼主gggitxai(.只有我想不到的-没有我做不了得.)2005-05-18 04:35:55 在 VB / 基础类 提问

想请教以下问题?  
  我现在用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

相关问题

  • QQ窗体句柄
  • 关于窗体句柄
  • 窗体句柄的问题
  • 如何得到窗体句柄HWND
  • 关于窗体句柄的问题
  • 如何获得QQ的窗体句柄?
  • 如何获得父窗体的句柄?
  • 怎样通过窗体句柄取得窗体中某控件句柄
  • 在无法获取主窗体句柄时的子窗体句柄的查找
  • 如何应用MDI子窗体的句柄激活窗体?

关键词

  • 代码
  • 窗体句柄
  • lngfrmhwnd
  • byval
  • doodu
  • longprivate
  • findwindow
  • getclientrect
  • 程序
  • long

得分解答快速导航

  • 帖主:gggitxai
  • DooDu

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo