仿鱼鱼桌面秀 壁纸游览遇到问题 请高手解答 已附上源码
用了png做了窗口无奈不能用 右键菜单 所以只能用了悬浮做右键
问题1 哪位如果可以放到png窗口内 那是最好了
然后 由于采用 搜索 文件夹内的图片
问题2 由于做了循环 右键菜单 中 一些选项 均无法使用 只有循环好才有效cc
问题3 当选择透明度后 会自动设置第一幅 初始时的图片为透明 能否 选择哪个透明就哪个透明 - -
比如 这次有8张图片。加一副初始图片 一共9张
当循环播放到第4张 你按了透明 就从第四张开始 透明了。。
[ 本帖最后由 lele9013 于 2008-9-25 12:15 编辑 ] 人工置顶。--。。继续请教 楼上的是果果吧
哈哈谢谢下来看看 有时间就看一下了。这个想法不错呀。 楼主是要这样的效果吗?
对那个png的udf未做仔细研究,感觉有缺陷,在设置透明度以后,右键失效,我用的winsettrans($png_gui,'',190)之语句,请楼主自忖.
楼主的代码看得很累,ctrl+t应该不麻烦吧 恩 谢谢啦~~~~~~~~~
透明时的菜单问题也解决了
但还是有一个最大的问题
循环搜索图片并显示时
右键菜单 仍无法出现
我的想法是
搜索一张图片 显示出来。。按右键 可以选择设置主页的。。0 0
[ 本帖最后由 lele9013 于 2008-9-26 14:32 编辑 ] 不错啊。。。。
我比较喜欢鱼鱼桌面中的png图标,改了一下楼主的代码,有个难题比较难解决:
1.要能把png图标钉在桌面上(不能跑到最上层,压着其它窗口就不好了),不能被任意移动。
2.并能响应单击,双击不同的事件。
#include <GUIConstants.au3>
#include "misc.au3"
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <PNGbackgroundUDF.au3>
_Singleton("myScript")
Opt("GUIOnEventMode", 1)
$title = "png图标"
$PNG_GUI = CreateTransparentGUI("png图标", @ScriptDir & "\11.png", 0, 255, 11, 15, -1, -1)
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "click", $PNG_GUI)
While 1
Sleep(1000)
WEnd
Func click()
Run("C:\WINDOWS\system32\notepad.exe")
EndFunc
[ 本帖最后由 mhgd 于 2009-2-28 23:55 编辑 ] 钉在桌面的代码:
#include <GUIConstantsEx.au3>
#Include <WinAPI.au3>
Opt("GUIOnEventMode", 1);启用 OnEvent 函数notifications
;$Form1 = GUICreate("第一种方法", 100, 100, 100, 100,-1,-1,_WinAPI_GetWindow(_WinAPI_FindWindow('Progman', 'Program Manager'),'$GW_CHILD'))
;GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
;GuiSetState()
$Form2 = GUICreate("第二种方法", 100, 100, 300, 100,-1,-1,_WinAPI_FindWindowEx(_WinAPI_FindWindow('Progman', ''),0,'shelldll_defview',''))
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
GuiSetState()
While 1
Sleep(20)
WEnd
func _exit()
GUIDelete()
exit
endfunc
;返回子窗口句柄,比如:打开一个.txt文件,你用FindWindow函数只能找到父窗口的名字可能是ff.txt,但你要找到文件输入框就用这个FindWindEx函数
;$hwndParent:要查找子窗口的父窗口句柄
;$hwndChildAfter:子窗口句柄,如果为NULL就从第一个开始找,如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口,Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口
;$lpszClass:类名
;$lpszWindow:窗口或者控件的title或者caption
Func _WinAPI_FindWindowEx($hwndParent, $hwndChildAfter, $lpszClass, $lpszWindow);
Local $aResult
$aResult = DllCall("User32.dll", "hwnd", "FindWindowEx", "hwnd", $hwndParent, "hwnd", $hwndChildAfter, "str", $lpszClass, "str", $lpszWindow)
If @error Then Return SetError(@error, 0, 0)
Return $aResult
EndFunc 好像不行啊,只能实现钉在最前面啊。 我刚找到的这段代码可以钉在桌面,来自http://www.lunhui.net.cn/article.asp?id=43,谢谢三痕
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Example1()
; example 1
Func Example1()
Local $msg,$Child,$hwnd
$Child=GUICreate("My GUI")
$hwnd=WinGetHandle("Program Manager","")
DllCall("user32.dll","hwnd","SetParent","hwnd",$Child,"hwnd",$hwnd)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
EndFunc ;==>Example1 唉。还是没找到改背景的源码 。
页:
[1]