破帽遮颜 发表于 2008-10-22 23:08:27

PNG显示问题,用LABEL创建一个透明的热区



怎么样用label控件来创建一个热区点击呢?还是老问题了!
一直没解决,以前的方法,繁琐又没什么用处,所以再来问一次!

附上源码,gooker的!呵呵~

make2855 发表于 2008-10-22 23:43:37

我只是来顶顶,因为我根本没看懂“热区”是什么概念

redapple2008 发表于 2008-10-23 15:29:34

大哥,这个问题有点难呀。我是解决不了。

大绯狼 发表于 2008-10-23 16:58:14

尝试了用_MouseSetOnEvent来判断点击的范围,但是不知道老是没能得到想要的结果
一点击窗口鼠标就变成拖动状态了
破帽你可以试试用类似的方法。。我继续试

破帽遮颜 发表于 2008-10-24 13:06:04

因为要考虑内存,CPU情况,我是不可能用循环去检测的方法了!
现在用新建窗口的方法,呵呵,设置透明度为1~

redapple2008 发表于 2008-10-24 13:57:01

能不能明确一点,帽子。

gooker 发表于 2008-10-24 18:16:24

png太占内存了,用bmp,官方支持,只是少了透明。

redapple2008 发表于 2008-10-25 20:37:48

透明肯定是要的呀!

javarike 发表于 2008-10-29 00:07:14

原帖由 make2855 于 2008-10-22 23:43 发表 http://www.autoitx.com/images/common/back.gif
我只是来顶顶,因为我根本没看懂“热区”是什么概念

简单的来说就是在图片的某个特定的地方创建一个超连接。。。

liongodmien 发表于 2008-10-29 10:39:05

用了BMP图片,程序代码简化了,在这主题上传不了附件,只能贴代码:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$FORM = GUICreate('PNG图片显示(透明)', 296, 70, -1, -1, BitXOR($WS_POPUPWINDOW, $WS_BORDER))
$PNG_GUI = GUICtrlCreatePic("Background1.bmp", 0, 0, 290, 70)
$pic = GUICtrlCreatePic('play.bmp', 41, 20, 33, 36)
GUICtrlSetCursor(-1, 0)
GUICtrlSetState(-1, $GUI_ONTOP)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                case $pic
                        MsgBox(0, "", "player", 5)
        EndSwitch
WEnd

liongodmien 发表于 2008-10-29 10:40:18

希望这种画中画的构想能对大家有所帮助

flycntl 发表于 2009-6-26 03:59:16

不错 支持 的方式的

menfan1 发表于 2009-6-26 08:09:29

学习一下。。

autoit3CN 发表于 2009-7-6 02:37:06

学习下.以后也有用处

kn007 发表于 2009-7-6 07:31:38

呵呵,我也来学习下
页: [1] 2
查看完整版本: PNG显示问题,用LABEL创建一个透明的热区