找回密码
 加入
搜索
查看: 143448|回复: 154

[交流] 第十九讲 GDI+窗口自绘带控件

[复制链接]
发表于 2013-7-23 20:59:08 | 显示全部楼层 |阅读模式
本帖最后由 seniors 于 2013-7-24 09:52 编辑

窗口自绘说的普通点就是对窗口的各种状态进行自行绘制,不出现系统的各界面
1、WM_PAINT
自绘最主要的是对WM_PAINT消息的处理,在本例中这个消息用_DirUIGui_onPaint处理
2、WM_NCHITTEST
为了让窗口的控件能响应鼠标信息,就要响应WM_NCHITTEST消息,判断鼠标在什么位置,作出相应的反应,参看_DirUIGui_onNcHittest
也可以在WM_MOUSEMOVE中判断
3、WM_NCLBUTTONUP
这个用于响应窗口标题栏鼠标点击事件,见_DirUIGui_onNcLButtonUp,他应该要结合WM_NCHITTEST返回值来做相应处理
4、WM_LBUTTONUP
这个用于响应窗口客户区鼠标点击事件,也就是点击控件后,怎么处理。见_DirUIGui_onLButtonUp,他应该要结合WM_NCHITTEST返回值来做相应处理
这几个消息是主要处理的
下面的例子中,现在能做
1、创建窗口,并给窗口设置皮肤
2、创建按钮控件
3、创建动态标签,在WM_NCHITTEST中还没有来的及仔细细分控件,让动态的动态,静态的静态。
4、创建图片控件
所有控件多没有设置鼠标按下状态

如果我能做出编辑框的会,就再写一讲,如果写不出编辑框讲座就到此结束了。谢谢大家
希望能看懂的可以进一步完善,里面有好多是直接指定数值,并且没有判断是否成功
另外控件大小,颜色等的设置也没空写,太烦了


我很喜欢这个图片控件,看下面的图是不是很象QQ的布局?

更新一下,image对象忘记删除了
#include <DirUIGui.au3>

$hGui = _DirUIGui_CreatWin("QQ2013", 300, 200, -1, -1)
_DirUIGui_CreatePic("pic.jpg", 20, 40, 100, 100);图片地址自己修改
_DirUIGui_CreateLable("程序测试中,功能逐步增加,希望有人能一起做。", 130, 40, 150, 120)

$bt1 = _DirUIGui_CreateButton("背景图片", 30, 160, 80, 24)
$bt2 = _DirUIGui_CreateButton("背景颜色", 120, 160, 80, 24)
$bt3 = _DirUIGui_CreateButton("退出", 210, 160, 80, 24)

_DirUIGui_WinSetState(@SW_SHOW, $hGui)

Local $nMsg, $ret

While 1
        $nMsg = _DirUIGui_GetMsg()
        Switch $nMsg
                Case -3;按关闭按钮返回消息值-3,这里窗口已经销毁,程序中没有对关闭按钮进行手工处理,所以暂时不拦截了。
                        Exit
                Case $bt3
                        $ret = _DirUIGui_MsgBox("警告", "您确定要退出程序吗?", $hGui);返回 -3为按了关闭按钮,1为确定按钮,0为取消按钮
                        If $ret = 1 Then
                                ExitLoop
                        EndIf
                Case $bt1
                        _DirUIGui_SetWinSkin($hGui, "back.jpg");可以用图片文件设置皮肤,图片地址自己修改
                Case $bt2
                        _DirUIGui_SetWinSkin($hGui, RandomColor());颜色格式argb
        EndSwitch
WEnd

Func RandomColor()
        Local $r = Random(0, 255)
        Local $g = Random(0, 255)
        Local $b = Random(0, 255)
        Local $color = BitOR(0xFF000000, _;Alpha
                                BitShift($r, -16), _;Red
                                BitShift($g, -8), _;Green
                                $b);Blue
        Return $color
EndFunc

下面的代码回复后可见,保存为DirUIGui.au3
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

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

×

评分

参与人数 11威望 +5 金钱 +510 贡献 +50 收起 理由
acbs + 10 好东东,学习了。
南一 + 30
xms77 + 80 + 20 辛苦了
komaau3 + 60 神作 膜拜个
sdc7 + 10 不错··辛苦了·····

查看全部评分

发表于 2013-7-23 21:43:37 | 显示全部楼层
炫得眼要瞎了!
真要赞一个,界面太漂亮了
发表于 2013-7-23 22:06:05 | 显示全部楼层
界面太漂亮了
发表于 2013-7-23 22:39:23 | 显示全部楼层
大牛,这个界面太炫了!!
发表于 2013-7-23 22:39:53 | 显示全部楼层
GUI确实要补一补了
发表于 2013-7-23 22:51:26 | 显示全部楼层
经测试,所占用的内存非常小,相当强大。
发表于 2013-7-23 23:19:40 | 显示全部楼层
先评分,后阅读。
发表于 2013-7-23 23:54:49 | 显示全部楼层
强大。。。。
发表于 2013-7-24 08:39:12 | 显示全部楼层
楼主的GDI这块厉害的一塌糊涂!学习!!!
发表于 2013-7-24 09:34:37 | 显示全部楼层
GDI+好强大啊。。
发表于 2013-7-24 10:09:10 | 显示全部楼层
炫得眼要瞎了!
真要赞一个,界面太漂亮了
发表于 2013-7-24 10:52:20 | 显示全部楼层
仿佛看到了新版QQ2013
发表于 2013-7-24 12:04:10 | 显示全部楼层
非常漂亮,非常好的教程,感谢!
发表于 2013-7-24 12:58:25 | 显示全部楼层
回复 1# seniors


    酷。先收藏备用。
发表于 2013-7-24 17:05:47 | 显示全部楼层
牛啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 13:42 , Processed in 0.088202 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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