|
本帖最后由 啄啄 于 2012-8-10 14:27 编辑
可能许多同学还不知道什么是Direct UI
我简单介绍下
就是在父窗口上直接绘画控件,运行后,每个控件都是没有句柄的
可以说是自制控件
“自制控件”有许多好处,比如.漂亮的外形,防破J等等....
还想了解更多的同学,自行百度{:soso_e100:}
===============我是思路我怕谁====================
先来回想下我们之前学过的自绘
控件绘画顺序:
windows操作系统→发送消息→处理函数→绘画控件→控件
而我们“自制控件”并没有句柄一说,那就不可能让windows操作系统的消息发到我们的控件上来
怎么办?
既然他不给我们发消息,我们自己发
我们先写一个处理函数,原型就和我们自绘时用到的处理函数一样
比如以标签为例
子程序名:标签处理子程序
参数1:窗口句柄
参数2:消息
参数3:附加参数1
参数4:附加参数2
主要代码:
判断(是否为标签的父窗口)
是:判断(是否为按下消息)
是:判断(是否在标签的矩形{也就是标签的范围}内)
是:在父窗口上直接绘画标签(这里自行发挥)
否:跳过
否:跳过
否:跳过
....(下面自行发挥)
这个一个初步的标签处理函数完成
下面我们把他的父窗口子类化
这样子就可以获得父窗口的消息
当父窗口收到消息
我们就调用上面的函数
标签处理子程序(父窗口句柄,被鼠标左键按下,鼠标坐标x,鼠标坐标y)
接下来,标签可能就会发生绘画(主要看上面编写的代码)
这样就完成了一个简单的自制控件完成
============================================
当然还有很多的地方可以扩展,主要看大家自行发挥
这里只是给大家个思路
如果你看完,觉得哪里需要修改或者是错误,请回复提醒
如果觉得好,对你有帮助,那你一定要回复帮忙顶顶
求动力
|
|