DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 413 414 415 416 417 418 419 420 421 ··· 474 下一页

2013年5月5日

摘要: 首先感谢大家对第一帖的支持,应一些网友烈要求下面我在关于上一贴的一些补充和说明(老鸟可以无视)这一贴是实战+理论不知道第一帖的先看第一帖:http://topic.csdn.net/u/20110710/19/5209f358-31c8-4057-b108-02155a417fd0.html1).补充个高级可重载函数PreSubclassWindow(),我的理解是允许用户在子类化之前再做一额外些处理 ,这个重载函数也是非常重要的,要引起相当的注意。可以在这里改变控件的大小,位置,窗口样式,字体 ,等等.....你能想到的能改的,都可以在这里改.2).关于Edit的补充说明:我最初的自绘方法是 阅读全文
posted @ 2013-05-05 01:44 DoubleLi 阅读(494) 评论(0) 推荐(0)

摘要: 前言:从这学期开始就一直在学习自绘控件(mfc),目标是做出一款播放器界面,主要是为了打好基础,因为我基础实在是很烂....说说我自己心得体会以及自绘控件的方法吧,算是吐槽吧,说的不对和不全的地方,或者有更好的方法,请不吝赐教。我的机器环境是:Windows7旗舰版 Service Pack 1,Visual studio 20051).重绘某个控件时,强烈推荐使用子类化方法,比如想自绘Button控件, 首先添加自己的类CMYButton 继承自 CButton ,声明一个CMYButton 对象,然后使用 SubclassDlgItem(UINT nID, CWnd* pParent ); 阅读全文
posted @ 2013-05-05 01:43 DoubleLi 阅读(1074) 评论(0) 推荐(0)

摘要: 1. 新建一个基于对话框的MFC程序。2. 在工程中添加一个新类CMyButton,基类选择CButton。3. 然后转至新生成的MyButton.h头文件中,将鼠标放在类名CMyButton上点击一下,打开“属性”窗口,在“消息”按钮下为此类添加 WM_LBUTTONDOWN,WM_LBUTTONUP消息,并重写DrawItem虚函数(这个函数是重绘按钮时要调用的,在这里面可以自定义一些绘制按钮的操作,必须设置控件属性为 OWNERDRAW才会调用此函数。)。4. 在MyButton.h头文件中添加一个BOOL型变量m_BtnDown,来判断按钮是否被按下,并在构造函数中初始化为false. 阅读全文
posted @ 2013-05-05 01:34 DoubleLi 阅读(1474) 评论(0) 推荐(0)

摘要: 打开一个文件 :ShellExecute(NULL, NULL, "c://mfc类库详解.chm", NULL, NULL, SW_SHOWNORMAL);打开一个文件夹: ShellExecute(NULL, NULL, "c://", NULL, NULL, SW_SHOWNORMAL);在资源管理器中打开:ShellExecute(NULL, "explore", "c://", NULL, NULL, SW_SHOWNORMAL);搜索一个文件夹 : ShellExecute(NULL, "fi 阅读全文
posted @ 2013-05-05 01:30 DoubleLi 阅读(568) 评论(0) 推荐(0)

摘要: 滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间。通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的。滑动条控制的风格如下:TBS_HORZ 滑动条是水平方向的 TBS_VERT 滑动条是垂直方向的TBS_LEFT 滑动条位于窗口左侧 TBS_RIGHT 滑动条位于窗口右侧TBS_TOP 滑动条位于窗口顶部 TBS_BOTTOM 滑动条位于窗口底部TBS_BOTH 滑动条位于窗口两侧 TB 阅读全文
posted @ 2013-05-05 01:28 DoubleLi 阅读(776) 评论(0) 推荐(0)

摘要: 1前言 当程序的运行结果与程序员预想的不一样,如死机,计算值不正确,出现内存访问冲突等,就需要进行调试2进行调试前的准备工作 因为程序调试是一项十分耗时的工作,很难估计出将要花费多长时间,因此在调试前,一定要做好充分准备,尽量避免做无用功:1.构造好的测试步骤,让程序出错有规律性或出错的概率越大越好2.被调试程序及相关库是最符合要求的版本3.工程临时文件如.ncb被删除4.整个工程被重新编译5.应用程序的链接路经与调试路径保持一致6.单体测试全部通过3出错位置和原因的确定3.1几种典型错误的原因1 内存莫名其妙的失效原因:内存指针被多处引用,被多处释放2 多线程条件下死机原因:线程中由于用了S 阅读全文
posted @ 2013-05-05 01:27 DoubleLi 阅读(1344) 评论(0) 推荐(1)

摘要: 要想修改CButton类按钮背景颜色和文字颜色,必须利用自绘方法对按钮进行重新绘制。这可以通过定义一个以CButton为基类的新按钮类来实现。以下为具体的实现方法:方法一:加入一个新类,类名:CButtonEx,基类:CButton。在头文件 CButtonEx.h 中加入以下变量和函数定义:private: intm_Style; //按钮形状(0-正常,1-当前,2-按下,3-锁定) BOOLb_InRect; //鼠标进入标志 CStringm_strText; //按钮文字 COLORREFm_ForeColor; //文本颜色 COLORREFm_BackColor; /... 阅读全文
posted @ 2013-05-05 01:25 DoubleLi 阅读(833) 评论(0) 推荐(0)

摘要: 一、 综述 Mfc自带的 listctrl 虽然能够完成一些常用的操作,但是如果对于某些特定的应用,则无能为力,这时候,就学要对空间进行扩展,以实现满足特定需要的功能。本文阐述了如何实现具有自定义行高,而且能够选择和编辑的listctrl 控件。二、 实现(1) 实现自定义行高。 我们都知道,mfc 自带的 listctrl 控件的行高是固定的,不能够自定义的进行改变。如果设置一个比较大位图,或者简单的设置比较大号的字体,这些方法虽然能够改变行高,但是没有接触到问题的实质。我们使用消息反射机制来实现自定义行高。有关消息反射机制,请参见msdn 。实现自定义行高的listctrl 基于以下事实: 阅读全文
posted @ 2013-05-05 01:23 DoubleLi 阅读(1013) 评论(0) 推荐(0)

摘要: 做“HOOK文件打开/保存对话框”的过程中,我首先研究了界面库的相关知识。界面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息和调用Windows的API为主,这就是这种中低级语言的优势了。无论何种界面库,最为根本的原理就是获得或者截获窗口的某些消息,按照自己的需要处理这些消息,画出自己需要的界面。按照Windows下的界面库的使用方法来分类,可以分为两种: 1、 通过派生、继承界面库中的类来使用库。这类界面库现在是占绝大多数。这类界面库通常可以对同种类型的控件、窗口自己控制显示风格。这种类型的界面库典型的代表就是Gui 阅读全文
posted @ 2013-05-05 01:22 DoubleLi 阅读(805) 评论(0) 推荐(0)

摘要: 关于普通菜单的自绘,网上的例子很多,做的都还不错,但系统菜单的自绘例子缺很少,主要使用的都是HOOK,以A Revolutionary New Approach to Custom Drawn Menus(http://www.codeproject.com/KB/menus/skinmenu.aspx)这篇文章为代表。这篇文章的作者主要使用贴图去掉菜单的默认颜色实现的(使用TransparentBlt就可以搞定所有菜单的自绘,当然还有一些细节问题),我曾经也使用了他的这种方法去实现系统菜单的自绘,发现效果并不是很理想,会有一些颜色去除的不干净,仔细观察的话,原作者提供的Demo中也存在这样的 阅读全文
posted @ 2013-05-05 01:21 DoubleLi 阅读(827) 评论(0) 推荐(0)

上一页 1 ··· 413 414 415 416 417 418 419 420 421 ··· 474 下一页