绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
3月32015

[教程] 第十九讲 GDI+窗口自绘带控件

作者:绿色风   发布:2015-3-3 1:10 Tuesday   分类:   阅读:18054次   评论:1条  

窗口自绘说的普通点就是对窗口的各种状态进行自行绘制,不出现系统的各界面

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、创建图片控件
所有控件多没有设置鼠标按下状态


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

n2.png

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

 

#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```

 

 





本文固定链接: http://www.jianyiit.com/post-74.html

blogger
该日志由 绿色风 于2015-3-3 1:10 Tuesday发表在 分类下。
版权所有:《绿色风's Blog》 → 《[教程] 第十九讲 GDI+窗口自绘带控件》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::元宵快乐
下一篇:[教程]第十八讲 GDI+窗口自绘无控件

热门文章

相关文章

  • [教程]第十讲之分解2-多色渐变画刷
  • [教程]第十五讲GDI+图像之颜色矩阵
  • [教程]第三讲 GDI画笔、线型
  • [教程]第九讲 GDI+画刷
  • [教程] 第八讲 GDI完全自绘控件,超链接控件
评论列表 ↓
呦,果断人中龙凤! 柏杰      2017-09-04 17:57 @回复
能帮下忙么?,一个图片立体旋转的效果
取消回复

发表评论

亲,头像对么?

81 + 30 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7237 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap