飘云 发表于 2010-8-24 09:16:11

请教输入框(Input)和编辑框(Edit)的透明问题

本帖最后由 飘云 于 2010-8-24 10:01 编辑

这个问题在论坛找了半天没找到有人问的,是这样,使用_WinAPI_SetLayeredWindowAttributes函数后,窗体会变得透明,即使在上面加上pic控件,只要_WinAPI_SetLayeredWindowAttributes函数设置在最后,连着图片一起,还是透明的。这是以图片作为背景,在其上有Input,Edit,Combo,Label的一个GUI,正常情况下,Label控件背后出现一块灰色,虽然是透明,但是确是主窗体的颜色,当然它可以使用GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT),这样一来背景透明,图片就显现出来了,但是另外3个控件,不被GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)所支持,虽然是透明,但是却透过了图片,直接背景就是白色的了,我想要的效果是在Edit的编辑框背景上能看到底层的图片,望大家不吝赐教{:face (59):}





对了,之前看到有人说把扩展样式设为0就行,但是我试过,设为0后,输入框内的文本在框的左上角,但是背景并没有透出图片

afan 发表于 2010-8-24 13:27:20

这个问题我也试过几种方法,但没成功~

itljl 发表于 2010-8-24 13:31:11

似乎只能用改变控件的颜色来解决这个问题。而不能实现input的透明。我以前也试过好多次。

飘云 发表于 2010-8-24 15:01:54

{:face (175):}看来是木有办法了。。。。

sanmoking 发表于 2010-8-24 15:26:05

本帖最后由 sanmoking 于 2010-8-24 15:31 编辑

回复 4# 飘云


    楼主的问题和这个帖子一样:[传送门]



我绕了个弯路达到了楼主的要求,用透明label来伪装成input.目前只支持一个label-input,支持多个的话,还没写,楼主要是高手的话,可以抽空把我的代码改成支持多个的,再加上支持设置样式的更好.
目前只是一个小尝试.看上去达到了效果...




sanmoking 发表于 2010-8-24 15:27:05

简单的input的话,几乎乱真,但要是什么复杂的加密码,只允许数字等等的,要等高手们改好udf了.

afan 发表于 2010-8-24 15:30:31

回复飘云


    楼主的问题和这个帖子一样:[]



我绕了个弯路达到了楼主的要求,用透明label来伪 ...
sanmoking 发表于 2010-8-24 15:26 http://www.autoitx.com/images/common/back.gif


    这个好,拿下~

sanmoking 发表于 2010-8-24 15:34:43

回复 7# afan


    我突然又想到了另一个方法.等下告诉你

sanmoking 发表于 2010-8-24 16:33:01

回复 7# afan


    我突然又想到了另一个方法.等下告诉你

测试了好半天,发现无解.

afan 发表于 2010-8-24 16:33:54

回复 9# sanmoking


    辛苦了~ 现在也不错了

sanmoking 发表于 2010-8-24 21:41:24

回复 10# afan


    突然灵机一动,用前后两个窗体解决该问题(上边一个全透明的来承载input),看上去很完美了,之后发现,要想点中这个input很困难,只有点击到他的文字之后才能进行输入.而且在切换窗口的时候很容易露馅(两个窗体不同步出现和消失,虽然我用了很多方法来让他们同步,但是当按alt+tab切换窗口的时候就露馅了).还是失败.

afan 发表于 2010-8-24 21:45:47

回复 11# sanmoking


    把上面的窗体内嵌至主窗体行不?

sanmoking 发表于 2010-8-24 22:02:23

回复 12# afan


    你是说,把上面的窗体的设为主窗体的子窗体?我试了,发现点击不了input控件了

afan 发表于 2010-8-24 22:03:55

回复 13# sanmoking


    好像我也试过 不行

rolaka 发表于 2010-8-24 22:21:13

记得曾经 vb里有怎么画半透明的控件... 我翻翻
页: [1] 2
查看完整版本: 请教输入框(Input)和编辑框(Edit)的透明问题