UIPOWER《简易版DirectUI的构建》源代码编译过程中的问题
最近著名界面库开发厂商UIPOWER的BOSS阙海忠也开通了微博,为求粉,放出了一份《简易版DirectUI的构建》的源码
至于源代码地址大家可以加阙总sina微博然后去下载。
http://weibo.com/uipowertech
下载后的源码我是用VS2012打开的。

升级工程到VS2012之后就可以直接编译了。编译过程很顺利。只是有个提示说注册dll失败。这个原因是因为权限不够。因为这个界面库是以com的形式调用的,所以需要先注册如下两个组件 DUIButton.dll DirectUICom.dll 这里我用 开始-运行 的方式 regsvr32注册会提示
模块已加载,但对dllregisterServer的调用失败,错误代码为0x80040201
原因:使用管理员权限才能注册dll
解决方法是写一个批处理放在工程的output目录下
批处理的内容如下
IDUIRes *m_pDUIRes;
在应用程序初始化的时候同样初始化该界面库
感觉很奇怪。于是到源码中去看了看。
传递过去的绘图的句柄和窗体句柄是一个。
为什么会导致绘图失败?这个问题太郁闷了。于是一路跟进去看它的绘制过程。最后调试到绘图的函数部分。排除了DC问题,贴图区域问题之后,终于发现问题是在于
AlphaBlend函数中。
这个函数
/**************************Witch_Soya********************/
2013-1-13

