完成一个鼠标项目的驱动

这个驱动由于硬件修改,以及其他工作的进度安排,现在终于完成了.
 
主程序达到了1.18M,这大概是我写过的最大的驱动程序了(确切的说,这是一个鼠标的配置程序)
可能也是我个人独立写的最大的工程了.
 
这是为了帮助一个老朋友写的驱动,虽然工作量巨大,但是只收了正常开发费用的几十分之几吧.也算是还了几年前的一段人情.一直觉得亏欠对方,也一直帮助过对方公司,但是对于以前的一些事情还是觉得歉意的.不管怎么说,到此为止两不相欠了.
 
运用了以下技术:
1. 使用ATL/WTL作为框架.大量使用了自绘等操作;另外,整体界面使用了属性页和属性页子页面的类,不过重写了一堆的函数,因为windows提供的属性页界面太不符合界面需求了.
2.DirectUI使用了Xtreme Suite Pro中的markup组件,负责DirectUI元素的控制,同时也负责win32元素的布局
3.XML使用了firstobject.com的CMarkup
4.底层进行了几个层次的封装,USB级别,使用实现USB设备的操作,硬件级别,实现此硬件相关的操作,软件级别,实现一个抽象的游戏鼠标模型.因为我没法预料下一次客户会什么的修改,封装后方便了功能调整.
5.不规则窗体的实现.这一点需要感谢乔乔,他的一个点子使得大幅度提高了区域的创建速度.
6.图形处理Gdiplus.
 
点击按钮,可以指定按键对应功能.
 
 
目前的硬件X/Y的DPI是同步的,所以,选项也会被同步设置
 
录制结束后,应该点击一次Save,保存这一次的记录.
电机Restore Default,会重置所有选项,但是并不立刻写入硬件或文件.一律需要点Ok或Apply保存到文件和硬件.
 
 
 
Advertisements

One thought on “完成一个鼠标项目的驱动

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s