找回密码
 加入
搜索
查看: 7117|回复: 13

[GUI管理] [已解决]GUICtrlCreatePic显示的图片出现类似坏点的东西

 火.. [复制链接]
发表于 2013-10-3 09:37:27 | 显示全部楼层 |阅读模式
本帖最后由 东风破 于 2013-10-9 18:28 编辑



唉,折腾了一天了。就是没办法把图中的黑点给去掉,尝试过的方法如下:
1. 本来用Photoshop切片,后来换成fireworks,失败
2. 切片之后用系统自带画图工具打开一下然后保存,坏点会减少,但是仍然有部分
3. 在XP下显示正常,故把所有工具搬到XP下生成图片,但拿回win7测试还是有坏点
4. 论坛了搜索了有个09年的帖子跟我一样的问题,但是没能解决。

有解决的大大们指教一下。
源码如下:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Opt("GUIOnEventMode", 1)


$Form = GUICreate("", 555, 440, -1, -1, $WS_POPUP)
$bkpic = GUICtrlCreatePic(@ScriptDir & "\bg.jpg", 0, 0, 555, 440)
GUICtrlSetState(-1, $GUI_DISABLE);禁用图片控件,以作为背景

$bt2 = GUICtrlCreatePic(@ScriptDir & "\images\bt2.jpg", 101, 20,0,0)



GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
While 1
        Sleep(100)
WEnd

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam);拖动无边框窗体
        If ($hWnd = $Form) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc   ;==>WM_NCHITTEST
附件如下(图片和源码):



换了好多的图片测试,发现找一些颜色不是很复杂,立体感不是很强的图片能够有效避免这一问题。更好的的办法期待大神
另外,国外友人同样讨论过类似问题,E文不好,大概看了下,貌似GDI能够完美避免这种问题。原帖如下:
http://www.autoitscript.com/foru ... ck-squares-on-them/


问题已明确,是图片本身的问题。详见11楼benkel的解答:(点击直达

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-10-3 10:01:47 | 显示全部楼层
代码没有,图片没有,别人想提供下意见都没办法..
 楼主| 发表于 2013-10-3 10:05:58 | 显示全部楼层
回复 2# annybaby


  多谢提醒, 现在就上传
发表于 2013-10-3 10:19:24 | 显示全部楼层
回复 3# 东风破

不会又是跟WIN7的主题不兼容所致吧?
把WIN7主题改“经典”再测试一下先?
 楼主| 发表于 2013-10-3 10:20:49 | 显示全部楼层
回复 4# user3000


    嗯,测试可以了。那现在怎么办啊?毕竟不是所有的win7都是经典主题
发表于 2013-10-3 10:30:27 | 显示全部楼层
回复 5# 东风破
抱歉!
我能力之外,也没处理过类似问题。
见过相关提问帖,也忘了具体内容!

你可以在高人出手前,尝试搜索一下。
 楼主| 发表于 2013-10-3 11:05:36 | 显示全部楼层
回复 6# user3000


    嗯,多谢。努力搜索中。。。
发表于 2013-10-7 17:40:22 | 显示全部楼层
新手有此基础确实难得.
 楼主| 发表于 2013-10-7 21:03:13 | 显示全部楼层
回复 9# lxz


    多谢谬赞,有劳前辈们指教
发表于 2013-10-9 11:55:15 | 显示全部楼层
测试了一下,不关AU3的事,也不是XP或者WIN7。我在XP下测试一样有黑点,其实那不叫黑点,只是你第二张图片有alpha通道?(这个名称不能很确定,小菜菜)也就是有透明的点,直接把你背景图片通过透明的地方显示出来了。你的XP没黑点估计是你的GDI+版本低?我的XP一样有黑点,你用这个例子试试就知道是图片的问题了!
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
;~ Opt("GUIOnEventMode", 1)


$Form = GUICreate("", 555, 440, -1, -1, $WS_POPUP)
$bkpic = GUICtrlCreatePic(@ScriptDir & "\bg.jpg", 0, 0, 555, 440)
GUICtrlSetState(-1, $GUI_DISABLE);禁用图片控件,以作为背景

$bt2 = GUICtrlCreatePic(@ScriptDir & "\images\bt2.jpg", 101, 20,0,0)
$bt2 = GUICtrlCreatePic(@ScriptDir & "\images\bt2.jpg", 101, 150,0,0)


GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
While GUIGetMsg() <>-3
WEnd


Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam);拖动无边框窗体
        If ($hWnd = $Form) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc   ;==>WM_NCHITTEST

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-10-9 17:55:07 | 显示全部楼层
回复 11# benkel


    嗯,的确是您说的这样!
这个图标是eps格式,我通过ai转换成psd之后才用的。按照您的方法,我用qq截图直接截取ps显示的图片(qq截图只获取屏幕像素),测试完全正常!但是还是想弄明白到底如何才能使这种格式的图标正常显示,毕竟qq截图肯定效果不怎么样。
发表于 2013-10-10 15:04:37 | 显示全部楼层
试试用GDI+会不会,估计效果一样,因为图片上有透明通道……
 楼主| 发表于 2013-10-10 20:54:16 | 显示全部楼层
回复 13# benkel


    搜索到的老外友人的帖子同样建议用GDI+,但是我还没尝试,等把当前的完成了会试一下的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 08:16 , Processed in 0.086065 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表