DoubleLi

qq: 517712484 wx: ldbgliet

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

随笔分类 -  VC/MFC

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 30 下一页

摘要:1、添加#include 或者这时会报错1>c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]解决方法,点击项目属性,然后配置属性、常规,然后右边有个“项目默认值”,下面有个MFC 阅读全文
posted @ 2013-12-27 09:34 DoubleLi 阅读(413) 评论(0) 推荐(0) 编辑

摘要:源博客:http://www.codeproject.com/Articles/9350/2D-Animated-Charts源代码:http://download.csdn.net/detail/nuptboyzhb/4202051简介:CGraphObject是由CWnd类派生出来,因此,CGraphObject类是一个窗口类;即,每个图表都是一个窗口;因此,每一个图表的创建,应该放在OnCreate函数或OnInitialUpdate函数中;其应用过程,与窗口类型的控件(如CButton)非常类似;应用:1.将相关的.h和.cpp文件复制到工程目录中,并载入到工程;[GraphObjec 阅读全文
posted @ 2013-12-26 15:14 DoubleLi 阅读(1101) 评论(0) 推荐(0) 编辑

摘要:微软的画图程序中画直线时,会有画线提示,形象的说就像“橡皮筋”一样,在未最终确定直线的长度和角度前都会有一根类似“橡皮筋”的直线,便于客户可以方便的画出理想的直线,具体实现方法如下:void CDrawView::OnLButtonDown(UINT nFlags, CPoint point){m_bDraw = true;m_ptOrigin = point;m_ptEnd = point;CView::OnLButtonDown(nFlags, point);}void CDrawView::OnMouseMove(UINT nFlags, CPoint point){if(m_bDraw 阅读全文
posted @ 2013-12-26 12:55 DoubleLi 阅读(979) 评论(0) 推荐(0) 编辑

摘要:在客户区画直线等图形时, 发现当其最小化或者其他窗口遮挡时,出现窗口重绘,而将原来绘制的图形删除,上网上搜索知道,绘制图形的代码必须放置在Ondraw函数中,才能避免重绘时图形消失(因为一直在响应WM_PAINT消息,不断的重绘),但是这样做却只能保存最近的一次绘图,只适用于单幅固定的图形,对于其中有多幅图形就不能这么做了,解决的思路是:考虑到MFC时 文档/视图 类,视图CView负责数据的显示和修改,文档CDocument类负责数据的存储和加载,从而把数据管理和显示方法分离开来。我们在CDocument类中添加一个CBitMap对象,将每次中间绘图时的客户区的内容保存成BitMap,当所有 阅读全文
posted @ 2013-12-26 10:12 DoubleLi 阅读(1776) 评论(0) 推荐(0) 编辑

摘要:在codeproject发现一个很强大的按钮皮肤类,之前的版本有内存泄露,但是作者已经修复了,原文网址是:http://www.codeproject.com/KB/buttons/cxskinbutton.aspx。它支持六种位图,分别是正常、按下、滑过、失效、焦点和遮掩位图。根据原文内容,一般用法如下:1.加入xSkinButton.cpp 和xSkinButton.h 到工程;2.在按钮控件需要定义的地方加入xSkinButton.h头文件;3.为按钮添加一个CxSkinButton类型的变量;4,在资源视图添加所需要的位图:NORMAL bitmap: 默认按钮图片.DOWN bitm 阅读全文
posted @ 2013-12-24 20:43 DoubleLi 阅读(1013) 评论(0) 推荐(0) 编辑

摘要:我们知道VS2008SP1之后,MFC就多了一个功能包,可以快速的建立一个ribbon的界面,视觉样式可以在office 2007蓝、黑等颜色之间切换,这对于单文档/多文档做界面非常方便,而且也蛮好看的。但是,引入的功能包不对对话框进行界面美化,除了多一些控件外,外观没变。于是就想能不能利用单文档的CFormView来模拟对话框,进行自己来实现对话框的美化呢,下面以单文档为例:1.单文档 ,“项目类型”选择Visual Studio 视觉样式和颜色 选择office2007 (蓝色主题);2.用户界面功能,选中“使用菜单栏和工具栏”;3.高级功能里面,所有的“高级框架窗格”都不要选择;4.生成 阅读全文
posted @ 2013-12-24 20:42 DoubleLi 阅读(740) 评论(0) 推荐(0) 编辑

摘要:在用VC做有关图表的时候,感觉不是那么方便,在codeproject找到一个柱形图的实用类,原文地址为:http://www.codeproject.com/KB/miscctrl/CBarChart.aspx。它可以很快速的生成柱状图,并且支持输出位图、支持打印、支持从数据库导入。原文章的类为多字节的,我自己改为了可适应多字节和Unicode版本的,如果有错的话,还请使用原文章所给出的源码。下面介绍下基本步骤:1.添加BarChart.cpp和BarChart.h工程;2.在需要使用的地方添加头文件#include"BarChart.h"3.定义一个CBarChart的变 阅读全文
posted @ 2013-12-24 20:40 DoubleLi 阅读(1116) 评论(0) 推荐(0) 编辑

摘要:有时候,我们需要在列表框ListBox中插入带图标的文字项,这就需要自己派生一个类出来了,网上的一个CIconListBox类还不错,网站http://www.codeguru.com/Cpp/controls/listbox/article.php/c4749/这里介绍下使用方法,源代码我有改动,环境Visual Studio 2008 SP1:1.基于对话框的工程,名称为IconListBoxTest;2.拖动控件到对话框上,按下图所示排列:3.导入IconListBox.cpp和IconListBox.h两个文件到工程,在对话框头文件包含#include"IconListBox 阅读全文
posted @ 2013-12-24 20:38 DoubleLi 阅读(670) 评论(0) 推荐(0) 编辑

摘要:分类:2.4 线程/图形学2010-04-30 22:141878人阅读评论(0)收藏举报文档null这是一个绘制直线的简单绘图程序,能过实现动态轨迹画线,在拖动时产生临时线来表示可能画出的直线效果。首先:建立一个单文档程序,名称为Demo然后:在视图类的声明文件里面加入数据成员classCDemoView:publicCView{//········protected:intm_Dragging;HCURSORm_HCross;CPointm_PointOld;CPointm_PointOrigin;// 阅读全文
posted @ 2013-12-24 20:31 DoubleLi 阅读(685) 评论(0) 推荐(0) 编辑

摘要:工作线程通常用来执行一些后台任务,如:数据计算、后台杀毒等等。因为不需要创建窗口和处理用户消息,编写比较容易,在程序中只要调用AfxBeginThread函数就可以创建并启动一个工作线程了。AfxBeginThread的原型如下:CWinThread*AfxBeginThread(AFX_THREADPROCpfnThreadProc, //指向控制函数的地址LPVOIDpParam, //指向传递给控制函数的参数intnPriority/*=THREAD_PRIORITY_NORMAL*/, //指定线程的优先级UINTnStackSize/*=0*/, //指定堆... 阅读全文
posted @ 2013-12-24 20:30 DoubleLi 阅读(3438) 评论(0) 推荐(2) 编辑

摘要:用户界面线程在运行时会有一个窗口界面和与其相对应的窗口函数,所以它可以通过响应消息来和用户进行交互。AfxBeginThread函数原型如下:CWinThread*AfxBeginThread(CRuntimeClass*pThreadClass,//从CWinThread派生的RUNTIME_CLASS类intnPriority/*=THREAD_PRIORITY_NORMAL*/,//指定线程的优先级UINTnStackSize/*=0*/,//定义新线程的堆栈大小DWORDdwCreateFlags/*=0*/,//为控制线程创建的附加标志LPSECURITY_ATTRIBUTESlpS 阅读全文
posted @ 2013-12-24 20:29 DoubleLi 阅读(6137) 评论(1) 推荐(1) 编辑

摘要:系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:建立一个CDialogEx的对话框 我们知道在VS2008SP1引进了BCG第三方控件,可以使MFC界面编程容易些,但是关于这方面的资料并不多。可能是我使用的系统因素,在建立对话框时,选择“生成的类”基于CDialogEx后,发现代码并没有把创建的对话框派生CDialogEx,而还是派生自CDialog。所以我们只能手动改之。对于一个新建立的对话框,这里我建立的名字为Test工程,我们开始进行以下步骤:1. 在TestDlg.h中,修改以下地方:class CTestDlg : publicCDialo 阅读全文
posted @ 2013-12-24 20:27 DoubleLi 阅读(991) 评论(0) 推荐(0) 编辑

摘要:系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用查阅MSDN文档,对于创建Tab Control控件,MSDN上说明如下:To useCTabCtrldirectly in a dialog box1.In the dialog editor, add a Tab Control to your dialog template resource. Specify its control ID.2.Use the Add Member Variable Wizard to a 阅读全文
posted @ 2013-12-24 20:25 DoubleLi 阅读(7128) 评论(0) 推荐(0) 编辑

摘要:操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:实现无框移动 所谓的无标题栏对话框,是基于对话框的工程,对话框属性Border设置为None,对话框如下所示:为对话框添加左键点击事件,代码如下:[cpp]view plaincopy voidCPlayerDlg::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:在此添加消息处理程序代码和/或调用默认值SendMessage(WM_SYSCOMMAND,0xF012,0);CDialog::OnLButtonDown(nFlags,point);}完成后,就可以拉动 阅读全文
posted @ 2013-12-24 20:21 DoubleLi 阅读(1187) 评论(0) 推荐(0) 编辑

摘要:操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为静态控件添加事件,如:STATIC、Picture Control等等 有时候我们找到一个图片,为对话框背景添加了图片,我们需要在某个位置令其可以单击,如下两图所示:首先:修改静态控件属性Notify为True,修改控件ID号,一定要修改,在这里我改为IDC_RIGHT,右键为静态控件添加左键单击事件,在这里我在代码里面添加了弹出消息对话框以作测试,效果如下:虽然不是动态的按钮,但是效果蛮不错的。 阅读全文
posted @ 2013-12-24 20:20 DoubleLi 阅读(385) 评论(0) 推荐(0) 编辑

摘要:操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为滑动控件设置背景透明 经常在编写有背景的程序时,滑动控件Slider Control看起来与背景十分不合,我们可以从CSliderCtrl派生自己的类出来,以实现这个功能。下面是效果图:所参考的资料来自:http://dev.yesky.com/179/2284679.shtml派生类下载:http://download.csdn.net/source/1851812使用时,添加滑动控件后,为其添加控件变量,然后将其改为如下:[cpp]view plaincopy CmySliderControlm_sli 阅读全文
posted @ 2013-12-24 20:19 DoubleLi 阅读(806) 评论(0) 推荐(0) 编辑

摘要:系统环境:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为对话框设置背景颜色、控件颜色 既然MFC对话框不好开发,那么现在我们来开始美化我们的对话框。为对话框设置背景颜色、控件颜色等等。对话框背景颜色:网上流传有四种方法(可能还不止),在VC++2008SP1测试后,发现只有三种可以使用了,其中第一种被废弃了。以下是四种方法:方法一(失效):调用CWinApp类的成员函数SetDialogBkColor来实现。 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对 话框设置为蓝色背景和红色文本,步骤如下: ① 新建一个基于Dial 阅读全文
posted @ 2013-12-24 20:17 DoubleLi 阅读(666) 评论(0) 推荐(0) 编辑

摘要:这下有了CImage类,处理其他类型的图片不再寻找第三方类库了。加载到对话框背景的代码如下: //从资源里载入背景JPEG图片 HRSRC hRsrc=::FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_JPG1), _T("JPG")); if(hRsrc!=NULL) { HGLOBAL hImgData=::LoadResource(AfxGetResourceHandle(),hRsrc); if(hImgData==NULL) ... 阅读全文
posted @ 2013-12-24 20:02 DoubleLi 阅读(469) 评论(0) 推荐(0) 编辑

摘要:系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现VC单文档、对话框程序显示图片效果CImage是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入、显示、转换和保存多种格式的图像文件,包括BMP、GIF、JPG、PNG、TIF等。CImage是一个独立的类,没有基类。(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有。)ATL(Active Template Library,活动模板库)是一套基于模板的 C++ 类,用以简化小而快的COM对象的编写。为了 阅读全文
posted @ 2013-12-24 20:00 DoubleLi 阅读(931) 评论(0) 推荐(0) 编辑

摘要:前言:WinDbg是微软开发的免费源代码级的调试工具。WinDbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。本文的讨论是在安装了Debugging Tools for Windows的前提下进行的,下载地址可以参考我之前的文章。WinDbg对于dump文件的调试可以通过菜单设置Symbol File Path、Source File Path,并可设置多个路径。1、打开Dump格式文件打开WinDbg,通过菜单[File]à[Open Crash dump]选择dump文件打开,也可通过CMD打开Dos命令窗口,切换到WinDbg所在目录,利用命令:WinD 阅读全文
posted @ 2013-12-22 16:17 DoubleLi 阅读(3696) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 30 下一页