- 博客(19)
- 资源 (19)
- 收藏
- 关注

原创 VC++DUIEngine界面编程1--学习编译及配置DUIEngine项目
1. 为什么要用DUIEngine:DUIEngine的作者是:启程软件。在此感谢他为此项目所付出的心血,能为我们这些界面爱好者,奉献了宝贵的时间以及优秀的代码。DUIE的优势为:1. 作者将金山的BKWin进行了深度改写,从而使之更易于使用和开发。相比传统的WTL而言,DUIE增加了许多窗口特效,如动态缩放窗口,3D界面旋转。从而使开发者能够在较短时间内开发出比较炫丽的界面特效。
2014-05-24 12:28:57
5289
原创 Visual Studio 2012安装VASSISTX插件后导致CPU高的解决办法
笔者一直都喜欢用VAX插件来做C++的开发,但发现VS2012安装了VAX后,CPU占用超级高,有时界面卡死得非常厉害。我卸了又装,升级最新版,都不管用。直到有天,看到网友说:VS2012的sdf文件和pch文件夹很大,可以设置个临时目录进行存放,以便及时删除而节约硬盘空间。所以我也跟着做了如下设置:在选项->文本编辑器->C/C++->高级里,把回退位置设为TRUE,并指定了回退位置的保
2014-10-20 13:38:47
3423
翻译 VC++界面编程之--托盘图标无缘无故被隐藏的原因
有时我们创建的托盘图标会无缘无故的消失了,搜索了下谷歌,发现是explorer.exe有时会记不住增加的托盘图标,当它记不住时,会发送消息询问窗口:有没有需要增加托盘图标的?然后你的窗口重新做一次增加托盘图标的动作即可。以下是原文:When you’re a programmer, it seems like you learn something new every day. One o
2014-09-25 17:58:12
2433
原创 VC++界面编程之--实现工具栏自定义皮肤
工具栏的工作原理就是:首先在父窗口上创建一个子窗口,然后在一个子窗口上创建不同ID的按钮,当用户点击某个按钮时,就会以一个命令的方式通知父窗口:我被点击了。所以我沿着这个思路,制作了一个自定义皮肤的工具栏。该工具栏包含了:①自定义背景图片、②自定义按钮图片、③自定义ToolTips、④动态增加按钮,等几个主要功能。当鼠标移动到某个工具栏按钮上上时,会动态切换按钮状态,并出现自定义的ToolTips。
2014-02-28 11:33:40
3650
原创 Boost编程之--慎用线程的this_thread::yield()方法
Boost 线程中的yield方法其实就是::Sleep(0)。Sleep会交出CPU时间片,允许其他线程运行,但“其他线程”也包含了交出CPU时间片的那个线程。想要更好的进行线程切换,不能够使用Sleep,而应采用线程锁或其他线程切换方法。
2014-02-25 17:25:06
12000
11
原创 VC++界面编程之--实现一个画板并提供文字输入功能(MsPaint)
画板的实现非常有趣,首先要新建一张HBITMAP来保存原来的绘制内容,然后需要创建一个可拉伸的输入框,供用户输入文字。必要时还得提供UnDo功能,供用户取消上一次绘制的功能。利用业余时间,我制作了一个画板程序,包含了以下几个功能:1. 可动态拉伸及移动位置的编辑框,供用户输入文字。2. 可画直线,圆圈,箭头,线段及线条。3. 可使用CTRL+Z组合键,撤销上一次的绘制。
2014-02-25 10:59:48
5906
原创 Boost编程之--使用thread类提高线程开发效率
用Windows API写线程,最痛苦的莫过于:1. 记不住CreateThread长长的参数,对于普通人,参数超过3个,就变得很难记住了。2. 线程参数表只有一个LPVOID,多参数情况下,我需要将其封装在类或者结构体里。3. 变量的同步与异常处理。
2014-02-24 15:55:50
2270
原创 VC++界面编程之--自定义CEdit(编辑框)皮肤
自定义编辑框是登陆界面经常用到的效果,所以我也模仿站酷网的素材做了个。要想继承CCustomDraw来完全自绘CEdit控件,是不太可行的方案,因为一旦你完全重绘,那么你需要额外做以下几件事:1. CEdit光标的处理;2. 当是密码提示时,需要弹窗提示用户大写打开。3. 需要处理窗口文字的滚动。这样看来,工作量会很大,而且效果也不一定好。我这里想到相对比较好的解决方案是:子窗口+透明边框的CEdit。子窗口负责皮肤的绘制,而CEdit负责处理用户的输入。这样一来,可以利用到CEdit原有的
2013-10-14 22:18:28
6016
原创 VC++界面编程之--使用分层窗口实现界面皮肤
使用分层界面来实现界面皮肤的好处是:可以保证图片边缘处理不失真,且能用于异形窗口上,如一些不规则的窗口,你很难用SetWindowRgn来达到理想效果。在很多情况下,界面的漂亮与否,取决于PS的制作及创意,而界面编程所需要做的就是将图片完整无缺的展示给用户。分层窗口带来的不便之处就是:你对窗口的操作都是介于两个窗口之间的,所以你需要在此上面多花费一些功夫,比如移动窗口,实际是移动两个窗口。再比如正常窗口调用CenterWindow,实际是让CThemedLayerWnd来移动窗口,你不得不重写Cent
2013-10-07 10:38:06
4161
5
原创 STL编程之--静态变量初始化方法
静态变量在STL模板编程中,总是让新手摸不着头脑,STL奇奇怪怪的语法再加上初始化的特定语法,的确让我在初学STL时吃了不少苦头。如果你发现自己写的类中由于静态变量引起的LNK2001的链接错误,那么很有可能你和我遇到了相同的错误。静态变量的初始化分为两种方式:1.在普通类中定义的静态变量初始化。 2. 在STL模板中定义的静态变量初始化。下面将分别说明在这两种情况下,应该如何正确的初
2013-09-27 16:16:10
2559
原创 VC++界面编程之--阴影窗口的实现详解
对于我们这些控件狂来说,窗口阴影也是一个必不可少的实现需求。虽说其没多大用,但对于增加窗口立体感来说,那是挺有帮助的。我实现了一个类似于360界面的阴影效果,其可以支持正常窗口,也支持半透明窗口。阴影窗口对于正常窗口和半透明窗口,有区别么?且让我慢慢写来:)阴影窗口的实现原理,简单来讲:就是在主窗口创建时,创建一个子窗口,吸附于主窗口的底部。然后在子窗口上做一个带半透明阴影效果的描
2013-09-14 20:01:31
9275
5
原创 VC++界面编程之--自定义标签控件(CStatic)皮肤
IPhone聊天泡泡是个很不错的控件,因为它能很友好的给用户一些简短的提示信息,而不失美观。我也想将这个泡泡,加到我的界面上,用做一些小提示:)用什么控件做好呢?当然是CStatic控件啦,我就是喜欢CStatic的简单,易扩展性强。只要你有一个好的GDI描绘创意,就能将其效果弄得千变万化。废话不多说,直接上使用步骤:1. 设置父窗口,用于获取父窗口的背景画刷:
2013-09-09 21:18:13
3835
原创 VC++界面编程之--使用STL auto_ptr管理GDI+对象
界面编程中,我比较关心GDI或GDI+对象的创建与销毁。生怕一个逻辑处理不好,就造成了内存泄漏。以前我用传统的delete操作来销毁GDI+对象,但发现编程实现效果不太好,总让人战战兢兢,而且逻辑比较复杂。如下面这几段代码,我需要时时take care我的Bitmap指针是否是空,是否需要进行销毁:1. 声明一个Bitmap指针,并需初始化为NULL:Bitmap* m_bmpProg
2013-09-09 15:39:47
1728
1
原创 VC++界面编程之--自定义CButton(按钮)皮肤
在VC++ WTL编程中,利用CustomDraw自绘的方法,可以很轻松地实现按钮的自绘效果。我利用了此方法,制作了一个CCustomButton类,实现了如下效果的控件,其支持普通的按钮风格,并也支持CheckBox的风格。实现方法:1. 首先继承CButton模板类及CCustomDraw的模板类。class CCustomButton : public CWindowIm
2013-09-05 20:42:21
11828
5
原创 VC++界面编程之--动态安装字体(CFont)
1. 起因:在界面编程时,我们经常需要用到自定义字体,来使自己的界面更美观。可要是别人电脑上没有你预定义的字体就麻烦了,你的界面字体会被Windows默认字体所取代,然后控件变形、错位等等问题会接踵而至。2. 解决办法:遇到这种情况,我们可以把字体放在Visual Studio的自定义资源中,和exe一起打包。还有一种办法是将字体打包在dll中或者放在一个文件夹中,这样可以减少exe的
2013-08-27 21:08:43
10573
1
原创 LabVIEW让鼠标的光标显示曲线的值
在LabVIEW开发设计中,我们有时候要用到曲线去展现某种数据的走势。当曲线多了或数据量比较大时,光用眼睛去看某个点的值时会觉得比较费劲。虽然LabVIEW提供了游标供我们查看某个曲线点的值,但它是静止不动的,也觉得麻烦。我们要的效果是:鼠标走到哪,数值就跟着显示到哪里,有点像Windows的提示窗。我用XControl做了一个控件,当鼠标移到某条曲线上时就显示该曲线的值,
2013-08-08 21:36:11
14176
1
原创 VC++界面编程之--自定义进度条(CProgressBar)皮肤
历史:我经常在PS设计网站和游戏界面,看到带条纹形状的进度条,看起来比较酷。所以决定实现一个带滚动效果的条纹进度条。经过一段时间的尝试之后,完成了如下效果图,且是带有滚动效果的。实现步骤:1.素材各大素材网站都有界面素材,比较出名的是站酷,从上面下载一份素材,尝试用PS截取你想要的图片吧。我下了一份界面素材,如下图:这些素材都是PSD分层的,可以省去抠图的时间,
2013-07-03 11:18:31
9745
原创 VC++界面编程之--获取父窗口背景画刷(附带时钟控件)
在WTL界面编程中,获取父窗口的背景画刷是经常要用到的,如下图的时钟: 时钟是每隔一秒就变化一次,所以当重画时钟时,需要先为其填充背景,以确保上一次描绘的部分被清理干净。当然,我们描绘时钟的图片是用PNG格式制作的,所以其支持透明背景色。但如果不手动清楚背景图片的话,将会变成下面这个样子: 阴影部分越来越浓了,唯一能做的是刷新父窗口,不过这将引起窗口抖动。所以我们需要在每次绘制
2013-06-13 21:51:28
11080
3
VC++界面编程之--仿Facebook透明登录窗口
2014-05-30
VC++界面编程之--实现工具栏自定义皮肤
2014-02-28
VC++界面编程之 实现一个画板并提供文字输入功能 MsPaint
2014-02-25
深入浅出2D几何学
2013-11-30
VC++/WTL 自绘CEedit皮肤
2013-10-15
VC++自绘CEdit(编辑框)皮肤
2013-10-15
VC++界面编程之--自定义CEdit(编辑框)皮肤
2013-10-14
VC++界面编程之--使用分层窗口实现界面皮肤
2013-10-07
VC++界面编程之--阴影窗口实现详解
2013-09-14
VC++界面编程之--CStatic模仿IPhone聊天泡泡
2013-09-09
VC++界面编程之--自绘按钮(CButton)皮肤
2013-09-05
LabVIEW让鼠标的光标显示曲线的值
2013-08-08
GDI+ 时钟控件
2013-07-18
gdi+绘制带滚动效果的进度条
2013-07-17
WTL时钟控件及获取父窗口背景画刷
2013-06-11
LabVIEW利用OLE自动化读写XML文件
2011-10-13
用C++创建一个LabVIEW DLL并读取Windows进程和PID
2011-10-01
MFC工具栏编辑器--让你省去手画工具栏的烦恼
2010-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人