3月32015
[教程] 第十九讲 GDI+窗口自绘带控件
窗口自绘说的普通点就是对窗口的各种状态进行自行绘制,不出现系统的各界面
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、创建图片控件
所有控件多没有设置鼠标按下状态
如果我能做出编辑框的会,就再写一讲,如果写不出编辑框讲座就到此结束了。谢谢大家
希望能看懂的可以进一步完善,里面有好多是直接指定数值,并且没有判断是否成功
另外控件大小,颜色等的设置也没空写,太烦了
#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://jianyiit.com/post-74.html
扫描二维码,在手机上阅读
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!
能帮下忙么?,一个图片立体旋转的效果