博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  VC++

VC,MFC相关博客文章
摘要:上一篇文章写了如何进行页面滑动切换,今天我讲一下如何实现两个按钮拖动交换位置,包括同一个页面按钮交换或者两个页面之间的按钮交换。另外就是如何拖动删除界面上的快捷方式。按钮交换和拖动删除,这两个功能基本上是现在智能手机的标准功能,不管是IOS或者Android都有类似功能。我实现的功能,主要是参考Android的功能实现。下面这个就是动态交换按钮效果图:还是先把逻辑关系图放出来:1、按钮拖动怎么样才能实现拖动一个按钮到另外一个按钮位置上,实现交换?这个首先一个需要做的就是拖动按钮的操作。按钮拖动我放到封装的DUIButton里面实现。下面我们看看DUIButton里面如何把按钮拖动出来。//.. 阅读全文

posted @ 2013-07-07 00:35 泡泡糖 阅读(7649) 评论(6) 推荐(2)

摘要:前几天开始写仿Win8 Metro界面文章,部分网友觉得不错,感谢各位的意见。本来今天一直在折腾Android VLC播放器,没时间写。不过明天休息,所以今天就抽时间先写一下。言归正传,我们都知道Win8的Metro界面只要手指一划,页面就跟着滑动(准确来说是按钮跟着滑动,背景其实没动),这个操作目前的Android和iPhone都是这种操作,个人感觉都是从iPhone借鉴来,滑动切换很早就有,不过按钮和壁纸分开滑动,这个还是iPhone时代开始。(这效果图是截了几张图弄的,所以看上去不流畅)类逻辑关系图1、界面逻辑层次开始说滑动前,先要解析一下屏幕显示的原理。我们都知道屏幕最后呈现出来的画面 阅读全文

posted @ 2013-06-29 12:11 泡泡糖 阅读(22100) 评论(0) 推荐(0)

摘要:去年用VC做了一个仿Win8 Metro风格的界面,感觉挺有意思,最近打算把实现过程和一些技术原理记录下来。主要是风格上类似Win8,其实功能上很多借鉴了Android的操作方式。界面只支持两种大小的Metro磁铁。原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3157205.html1、主要实现了以下功能:手指滑动切换页面。图标位置交换。从全部列表拖动添加到主页面。主页面按钮拖动添加删除操作。主页面按钮拖动添加到导航栏上。背景更换下面是一张最终桌面效果图:程序是运行在Wince上,不过是使用MFC开发,所以对PC开发也是同用。2、类图关系 要... 阅读全文

posted @ 2013-06-26 19:35 泡泡糖 阅读(13247) 评论(11) 推荐(3)

摘要:工作中,做一些炫点的界面都需要用到PNG图片,Wince里面微软也提供了PNG图片的支持,不过Alpha的混合速度比较慢,所以自己实现了一个Alpha的混合运算接口,经过测试,要比微软AlphaBlend快4、5倍。当然Alpha混合的方法也适合window下的VC使用。下面有测试的数据。原创博文,需要转载,请标明出处:http://www.cnblogs.com/mythou/p/3150396.html1、创建兼容32位位图。 一般界面贴图,我们都是使用微软的兼容DC和兼容位图进行处理。不过这里我需要创建一张32位的设备无关位图。(有关DIB位图相关知识,不了解的可以百度一下,这是和兼容. 阅读全文

posted @ 2013-06-22 23:13 泡泡糖 阅读(4624) 评论(3) 推荐(2)

摘要:原文:http://www.vckbase.com/index.php/wv/20.html前面,我们分析了消息的基本理论和基本的函数及用法,接下来,我们将进一步讨论消息传递在MFC中的实现。MFC消息的处理实现方式初看MFC中的各种消息,以及在头脑中根深蒂固的C++的影响,我们可能很自然的就会想到利用C++的三大特性之一:虚拟机制来实现消息的传递,但是经过分析,我们看到事情并不是想我们想象的那样,在MFC中消息是通过一种所谓的消息映射机制来处理的。为什么呢?在潘爱民老师翻译的《Visual C++技术内幕》(第4版)中给出了详细的原因说明,我再简要的说一遍。在CWnd类中大约有110个消息, 阅读全文

posted @ 2013-06-12 23:24 泡泡糖 阅读(356) 评论(0) 推荐(0)

摘要:原文:http://www.vckbase.com/index.php/wv/19.html队列消息和非队列消息从消息的发送途径来看,消息可以分成2种:队列消息和非队列消息。消息队列由可以分成系统消息队列和线程消息队列。系统消息队列由Windows维护,线程消息队列则由每个GUI线程自己进行维护,为避免给non-GUI现成创建消息队列,所有线程产生时并没有消息队列,仅当线程第一次调用GDI函数数系统给线程创建一个消息队列。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。对于队列消息,最常见的是鼠标和键盘触发的消息,例如WM_MOUSERMOVE,WM_CHAR等消 阅读全文

posted @ 2013-06-12 23:21 泡泡糖 阅读(451) 评论(0) 推荐(0)

摘要:这里3篇有关VC消息机制的文章讲得很透切,做VC开发经常需要跟消息打交道,深入理解vc消息机制对以后开发很有好处,摘录下来,以后看看。原文:http://www.vckbase.com/index.php/wv/18.html消息是指什么?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信 阅读全文

posted @ 2013-06-12 23:14 泡泡糖 阅读(468) 评论(0) 推荐(0)

摘要:原文:http://www.cnblogs.com/WeedQian/archive/2009/12/28/1634484.html简介非模式对话框常常感到困惑的新手程序员。基本上是一个非模式对话框是一个使我们能够互动,与其他的Windows ,甚至当非模式对话框仍然是在屏幕上。如果您请记住,几个漂亮的小动作,然后编程非模式对话框,将非常简单。创建非模式对话框简单的方法创建一个非模式对话框是使用Create()。通过名称的对话框中的模板资源和一个可选的CWnd*这点,向父窗口。如果您不通过一个父窗口指针的主要应用程序窗口将被作为父窗口。Create()将返回true如果调用是成功的。自Crea 阅读全文

posted @ 2013-06-12 23:06 泡泡糖 阅读(659) 评论(0) 推荐(0)

摘要:原文:http://xinbaojiang.blog.163.com/blog/static/119970729200952411266197/使用 AFX_EXT_CLASS 导出和导入扩展DLL使用 AFX_EXT_CLASS 宏导出类;链接到扩展 DLL 的可执行文件使用该宏导入类。使用 AFX_EXT_CLASS 宏,用于生成扩展 DLL 的相同头文件可以与链接到 DLL 的可执行文件一起使用。在 DLL 的头文件中,将 AFX_EXT_CLASS 关键字添加到类的声明中,如下所示:class AFX_EXT_CLASS CMyClass : public Cdocument{// } 阅读全文

posted @ 2013-06-12 22:49 泡泡糖 阅读(654) 评论(0) 推荐(0)