首页/ 微观世界/ 正文
📎 本文网址 http://228551.geci.2211mu.com/26810

专家解析VB程序中获取窗口句柄的位置技巧分享

✍️ 作者:极地荒漠 👁 阅读 2,358 💬 评论 36 ⏱ 阅读约 6 分钟

专家解析VB程序中获取窗口句柄的位置技巧分享

本文目录

  1. errhanle是什么意思?
  2. 窗口的类名是什么意思?
  3. vb知道部分标题怎么获取改窗口的句柄,如果能根据进程来判断就更好了?
  4. VB如何获取对象的类名?
  5. vb如何做到所有控件半透明。急求啊?

errhanle是什么意思?

VB中无errhanle关键字,从字面看是出错句柄的意思,它可能在On Error 语句指向的错误处理程序名,也可以是一个变量名等。

窗口的类名是什么意思?

它是一种窗口的类的名称.譬如在VB工具栏里有很多的控件(注意控件也是窗口的一种,只是看上去小多了,外观也和一般窗口变了很多。),如按钮,编辑框。这些标准的按钮只有一个类名,是微软实现定义好的,我们无法修改。要找句柄的类名,可以用按键抓抓工具抓取。

vb知道部分标题怎么获取改窗口的句柄,如果能根据进程来判断就更好了?

FindWindow()函数就可以了 模块声明 Declare Function FindWindow Lib "user32 " Alias "FindWindowA " (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long 然后,在调用时使用如下语句: hwndCalc = FindWindow(0&, "计算器 ") 这里的0&就表示忽略类名。需要注意的是FindWindow(0&, "计算器 ")和FindWindow( " ", "计算器 ")有两种完全不同的含义,前者表示忽略窗口的类,而后者表示窗口的类是个空串。类似的,我们也可以忽略标题而搜索指定的类。

如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。

VB如何获取对象的类名?

先用findwindow找到对象句柄,然后用getclassname来获取句柄类名,findwindow怎么用应该知道,getclassname这样:声明自己用API浏览器找。

dim a as string*256

getclassname 句柄,a,255

句柄是对象句柄,a就是类名了,你可以后面加个text1.text=a。255是建立缓冲区存放类名a,手机上的,全代码就不发了,还有不知道的可以问我。

vb如何做到所有控件半透明。急求啊?

'透明函数setlayeredwindowattributes

'使用这个函数,可以轻松的实现半透明窗体。按照微软的要求,透明窗体窗体在创建时应使用ws_ex_layered参数(用createwindowex),或者在创建后设置该参数(用setwindowlong),我选用后者。全部函数、常量声明如下:

privatedeclarefunctiongetwindowlonglib"user32"alias"getwindowlonga"(byvalhwndaslong,byvalnindexaslong)aslong

privatedeclarefunctionsetwindowlonglib"user32"alias"setwindowlonga"(byvalhwndaslong,byvalnindexaslong,byvaldwnewlongaslong)aslong

privatedeclarefunctionsetlayeredwindowattributeslib"user32"(byvalhwndaslong,byvalcrkeyaslong,byvalbalphaasbyte,byvaldwflagsaslong)aslong

'其中hwnd是透明窗体的句柄,crkey为颜色值,balpha是透明度,取值范围是[0,255],dwflags是透明方式,可以取两个值:当取值为lwa_alpha时,crkey参数无效,balpha参数有效;当取值为lwa_colorkey时,balpha参数有效而窗体中的所有颜色为crkey的地方将变为透明--这个功能很有用:我们不必再为建立不规则形状的窗体而调用一大堆区域分析、创建、合并函数了,只需指定透明处的颜色值即可,哈哈哈哈!请看具体代码。

privateconstws_ex_layered=&h80000

privateconstgwl_exstyle=(-20)

privateconstlwa_alpha=&h2

privateconstlwa_colorkey=&h1

privatesubform_load()

'半透明

dimrtnaslong

rtn=getwindowlong(hwnd,gwl_exstyle)

rtn=rtnorws_ex_layered

setwindowlonghwnd,gwl_exstyle,rtn

setlayeredwindowattributeshwnd,0,125,lwa_alpha

endsub

⚠ 温馨提示:知识看完了,记得站起来活动一下,喝杯水,看看窗外——好身体和好奇心一样重要。
📌 声明:本文内容仅供参考,具体操作请咨询专业人士。