
C++
文章平均质量分 57
欢香Love
历史是曾经的现实,现实是活着的历史
展开
-
MFC Button控件自绘
VC下的界面着实难看 有时候我们不得不自己进行控件的绘制 以前 一直不理解最近再次看了学了一遍终于明白了一点 与大家分享下... 需要源代码的Q我 寻找一起学VC的朋友 比如说 我们要改变一个编辑框的背景 我们响应WM_CTLCOLOR函数 进行OnCtlColor进行修改但是对与 Button控件就不行了 .. 这时候我们要进行自绘制 相关函数 ...转载 2018-12-20 14:41:59 · 494 阅读 · 0 评论 -
C++使用VS2010导出Excel的方法及步骤
最近工作需要将listctrl中的数据导出到Excel中。网上找了很多,但多数是VC6.0的。结合VC6.0导出的方法,自己琢磨了不少时间,终于将问题解决了。轻松之余,将过程分享出来,希望对需要的人有所帮助。 VC6.0的请看这里:http://topic.youkuaiyun.com/t/20050718/15/4151984.html 环境:Windows7Mic转载 2014-12-10 17:41:36 · 4036 阅读 · 0 评论 -
CListCtrl控件使用方法总结
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显转载 2014-12-10 11:52:56 · 507 阅读 · 0 评论 -
HBITMAP 与 CBitmap 、BITMAP、HDIB
1.HBITMAP转成CBitmap: HBITMAP hBmp; //hBmp的初始化代码 CBitmap* pBmp = CBitmap::FromHandle(hBmp);HBITMAP hbmp; CBitmap bmp; bmp.Attach(hbmp); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1)转载 2014-12-26 09:35:46 · 1147 阅读 · 0 评论 -
BMP文件结构
位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。位图文件的组成结构名称符号位图文件头(bitmap-file header)BITMAPFILEHEAD转载 2014-12-25 17:19:45 · 518 阅读 · 0 评论 -
win7 64bit 干净系统(只装了硬件相关的几个驱动程序) 的C盘文件夹 和注册表截图
1. C:\Program Files 目录截图原创 2014-10-20 11:46:54 · 1111 阅读 · 0 评论 -
不同颜色对应的RGB值
在程序中指定颜色一般试用RGB函数,分别输入R、G、B值。RGB函数返回颜色值(Long)。如果在程序中直接指定颜色对应的值,可以稍微加快程序的运行速度。特别在使单双行显示不同颜色等频繁调用RGB函数时,效果要好一些。 下表是一些常用颜色的值 Colour Red Green Blue 值翻译 2014-09-17 15:27:54 · 9610 阅读 · 0 评论 -
MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数转载 2014-09-25 10:56:21 · 553 阅读 · 0 评论 -
MFC绘图
1 几何对象的结构和类为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类。这些结构和类分别定义在头文件windef.h和afxwin.h中。1.点1)点结构POINT点数据结构POINT用来表示一点的x、y坐标:typedef struct tagPOINT { LONG x; LONG y; } POINT;2)点类CP转载 2014-09-15 17:39:50 · 995 阅读 · 0 评论 -
C++中的随机函数
C++中的随机函数 2009-05-30 10:58 11058人阅读 评论(1) 收藏 举报 c++random编译器gccnullc一、random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。 可改用C++下的rand函数来实现。 1、C++标准函数库提供一随机数生成转载 2014-09-22 13:28:39 · 492 阅读 · 0 评论 -
MFC消息详解
mfccommandc++null制造存储MFC消息详解1. 怎样使用MFC发送一个消息用MFC发送一个消息的方法是, 首先,应获取接收消息的CWnd类对象的指针; 然后,调用CWnd的成员函数SendMessage( )。 LRESULT Res=pWnd->SendMessage(UINT Msg, WPARAM wParam, LPARA转载 2014-09-22 09:31:30 · 607 阅读 · 0 评论 -
MFC控件完全重绘从CWnd开始
导读:我并不推荐采用自绘的方式去完成一些控件(比如CStatic,CButton,RadioBox,CheckBox等)的美化,而是推荐大家从CWnd入手,把这些基本控件完全重新绘制一遍(当然,有些做的很好的控件还是需要继承来自绘的,比如CListCtrl)。为什么这么做?因为MFC对这些控件的某些操作是隐蔽的,某些限制是我们无法接受的(比如CTabCtrl的头部高度和每个Item的宽度)。我转载 2014-09-09 11:44:03 · 1181 阅读 · 0 评论 -
MFC中添加新的对话框
在MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框。这里总结下自己最近使用的方法。 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新增类的名称之后,就新增了一个类。这个类不仅有对应的头文件还有.cpp文件,以及一个与这个类原创 2014-08-21 16:19:58 · 3451 阅读 · 0 评论 -
C#教程电子书
C# Primer Plus中文版http://download.chinaitlab.com/soft/7990.htmC# 开发编码规范 http://download.chinaitlab.com/soft/7991.htmC#深入浅出全接触http://download.chinaitlab.com/soft/6992.htmC# COM+ Programm转载 2014-12-29 11:26:56 · 1406 阅读 · 0 评论 -
ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏ON_NOTIFY 是控件向其父窗口发送消息处理的宏对这几个消息的理解要先了解一下Window消息的背景。在Windows3.1里,控件会将mouse, keybord等等的消息通知它的父窗口, 使用的消息就只有WM_COMMAND, 事件种类和控件ID被包含在wParam中, 控转载 2015-03-02 16:13:01 · 474 阅读 · 0 评论 -
PreTranslateMessage作用和使用方法
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来转载 2015-03-06 10:04:12 · 730 阅读 · 0 评论 -
C++知识回顾: __stdcall、__cdcel和__fastcall三者的区别
__stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。调用协议常用场合 __stdcall:Windows API默认的函数调用协议。 __cdecl:C/C++默认的函数调用协议。 __fastcall:适用于对性能要求较高的场合。 函数参数入栈方式 __...转载 2018-07-31 17:36:53 · 358 阅读 · 0 评论 -
CSP应用开发-CryptAPI函数库介绍
基本加密函数为开发加密应用程序提供了足够灵活的空间。所有CSP的通讯都是通过这些函数。一个CSP是实现所有加密操作的独立模块。在每一个应用程序中至少需要提供一个CSP来完成所需的加密操作。如果使用多于一个以上的CSP,在加密函数调用中就要指定所需的CSP。微软基本加密提供者(Microsoft Base Cryptographic Provider),是缺省绑定到CryptoAPI 里的。如果没有...转载 2018-06-29 10:13:40 · 905 阅读 · 0 评论 -
OpenGL入门学习
说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。O转载 2016-02-29 16:51:42 · 1368 阅读 · 0 评论 -
c++类的构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解 一、 构造函数是转载 2016-01-11 11:20:31 · 711 阅读 · 1 评论 -
C++中引用和指针的区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别首先,引用不可以为空,但指针可以为空。前转载 2015-09-16 16:37:45 · 569 阅读 · 0 评论 -
MFC对话框 OnClose() 和 OnDestroy() 调用区别
OnClose():消息响应函数,响应WM_CLOSE消息,当"关闭"按钮被单击的时候(而不是我们眼睛所见的对话框从屏幕上消失时),该函数被调用,用户在响应OnOk()或者OnCancel()函数之后,不会发送WM_CLOSE消息OnDestroy():消息响应函数,响应WM_DESTROY消息,当一个窗口即将被销毁时,被发送在单视图程序中,根据>所讲,程序退出时执行的操作顺序为:(1)用户点转载 2015-06-05 17:23:30 · 8348 阅读 · 0 评论 -
C++ 统计程序运行耗时的几种方法的总结
方法一 利用GetTickCount函数(ms)代码:CString str; longt1=GetTickCount();//程序段开始前取得系统运行时间(ms) 。。。。。。//to do sthlongt2=GetTickCount();//程序段结束后取得系统运行时间(ms) str.F转载 2015-05-22 16:26:22 · 16059 阅读 · 0 评论 -
单通道和多通道图像相关概念
在做机器视觉时,常常要将一个多通道图像分离成几个单通道图像或者将几个单通道图像合成一个多通道图像,以方便图像处理,但是。写这篇博客,是为加深对单通道图像和多通道图像这两个概念的理解。 图像通道在RGB色彩模式下就是指在下就是指那单独的红色R、绿色G、蓝色B部分。也就是说,一幅完整的图像,是由红色绿色蓝色三个通道组成的。他们共同作用产生了完整的图像。同样在HSV色系中指的是色调转载 2015-04-09 13:56:10 · 9129 阅读 · 0 评论 -
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏的详细解释
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏的详细解释最近有些朋友在看《深入浅出MFC》的时候,被第三章的几个宏给卡住了,记得我第一次看此书时,也被这几个宏给卡住。当然真正卡人的其实是第一个,也就是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC。我做了一个详解,供同样被卡住的朋友做个参考:)说明:这两个宏的主要目的,是在所指定的class(比转载 2015-04-07 16:43:45 · 846 阅读 · 0 评论 -
AlphaBlend
AlphaBlend实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。TransparentBlt可以针对某种颜色进行透明,不过透明度不可设。 AlphaBlend:BLENDFUNCTION bn;bn.AlphaFormat = 0;bn.BlendFlags = 0;bn.BlendOp = AC_SRC_OVER;bn.S转载 2015-04-03 16:45:08 · 845 阅读 · 0 评论 -
软件工程概要设计
摘要: 本文是在概要设计实践和学习中的一些心得与学习笔记,希望与大家分享,如有不妥之处欢迎指正。 关键字: 概要设计,结构化,OOD 正文: 在需求明确、准备开始编码之前,要做概要设计,而详细设计可能大部分公司没有做,有做的也大部分是和编码同步进行,或者在编码之后。因此,对大部分的公司来说,概要设计文档是唯一的设计文档,对后面的开发、测试、实施、维护工作起到关键性的影转载 2015-03-11 11:50:57 · 7934 阅读 · 0 评论 -
软件概要设计应该体现哪些内容
一、概论 1、编写目的 2、编写背景 3、对系统的大致描述 二、业务概述和逻辑设计 1、对系统几大主体的描述 2、对系统几大业务流程描述 3、用UML对其进行总体描述 三、技术架构 在此章决定使用那种技术体系,具体的技术有那些, 描述他们之间是怎么协同运作转载 2015-03-11 10:52:58 · 3702 阅读 · 0 评论 -
vs2010 无法启动程序 系统找不到指定的文件
我经常遇到这样的问题,一直都迷糊$(OutDir)$(TargetName)$(TargetExt)、$(SolutionDir)$(Configuration)。闹不明白。很多时候,我们会将一些低版本IDE编译过的项目,搬迁到VS2010 ,那么会存在很多编译,调试问题。【1】 编译成功了。可是无法调试 。 . 显示 无法启动程序“...........\test.exe转载 2014-06-18 15:34:06 · 27202 阅读 · 4 评论 -
typedef unsigned long (__stdcall *THREADFUNC)(void *)
自定义函数指针类型名为 THREADFUNC,可指向如下函数返回值为unsigned long,参数类型为void *,调用约定为__stdcall举例说明:typedef unsigned long(__stdcall *THREADFUNC)(void *);unsigned long __stdcall myfunc(void *param){ *((int *)转载 2014-06-18 14:52:06 · 2356 阅读 · 0 评论 -
MFC - HOOK和数据库访问 ( 孙鑫C++第二十讲笔记整理 )
1.Hook简介:作用是拦截某些消息,关键函数是SetWindowsHookEX() 2.示例程序: a.新建一基于对话框工程,InnerHook,此过程的钩子是只拦截本进程的。 b.在OnInitDialog()中添加代码: g_hWnd=m_hWnd; g_hMouse=SetWindowsHookEx(WH_MOUSE,MousePro转载 2013-12-25 11:47:02 · 1046 阅读 · 0 评论 -
MFC- ActiveX编程(孙鑫C++第十八讲笔记整理 )
一:在VB中调用X控件,添加方法 project->Add components。另外可以用Object Browser来查看控件 二:在VC中创建X控件1.新建一个X工程名为Clock,注意一个文件中可以包含多个控件。2.保持缺省设置,完成。注意它生成的三个类,以及相关的接口。3.运行它。选择TSTCON32.exe作为容器。4.选择Inser转载 2013-12-25 11:38:39 · 1054 阅读 · 0 评论 -
MFC - 文件操作 (孙鑫C++第十二讲笔记整理)
1.常量指针与指针常量的区分 char ch[5]="lisi"; const char *pStr=ch;//const在*之前,表明指针指向的内容为常量,即为常量指针 char * const pStr=ch;//const在*之后,表明指针的地址不能改变,即为指针常量 明白? 2.对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.t转载 2013-12-30 17:37:04 · 1357 阅读 · 2 评论 -
MFC - 线程同步与异步套接字 (孙鑫C++第十六讲笔记整理)
1.事件对象:来实现线程的同步。与互斥对象一样均属于内核对象。 当人工重置有信号时,所有线程均得到信号,所以不能设为人工重置。代码就不贴了,通过创建匿名的事件对象,也可以让一个程序只能运行一个实例。 2.关键代码段实现线程的同步:类似公用电话亭,只有当电话亭里面没人了,其它人才可以再进去打电话。用了4个函数,这种方法比较简单!但缺点是如果使用了多少关键代码码,容易赞成线程的死锁转载 2013-12-30 09:23:03 · 1997 阅读 · 0 评论 -
MFC - 网络编程 (孙鑫C++第十四讲笔记整理)
一.TCP流式套接字的编程步骤在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。3、将套接字绑定到一个本地地址和端口上(bind)。4、将套接字设为监听模式,准备接收客户请求(listen)。5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字转载 2013-12-30 09:07:03 · 978 阅读 · 0 评论 -
MFC中的OnDraw和OnPaint的对比
学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下。OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消转载 2013-12-30 09:19:37 · 824 阅读 · 0 评论 -
MFC - 进程间的通信(孙鑫C++第十七讲笔记整理)
有四种方法1.剪贴板 a.创建个ClipBoard的对话框应用程序,加两EditBox和两个Button发送接收。 b.具体代码: 发送端代码: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); GetDlgItemText(IDC_EDIT_转载 2013-12-30 09:14:19 · 914 阅读 · 0 评论 -
OpenGL在vs2008上的具体设置
一、OpenGL简介 OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。 二、OpenGL环境的配置如果你是第一次编写OpenGL程序,你需要先配置环境。第一步:编程环境的选择,这里用的是V原创 2013-11-27 11:01:29 · 790 阅读 · 0 评论 -
C++ 常见面试题
一、常见字符串1. 写出在母串中查找子串出现次数的代码。[cpp] view plaincopyint count(char* str,char* substr) { char* str1; char* str2; int num = 0; while(*str!='\0') { str1 = str;转载 2013-11-27 10:07:22 · 1146 阅读 · 0 评论 -
读写文件,影响效率的因素
在文件大小相同的前提下:1. 读刚读过的文件比头次读没读过的文件快;2. 读转速快的硬盘上的文件比读转速慢的硬盘上的文件快;3. 读没有磁盘碎片的文件比读有磁盘碎片的文件快;4. 读文件不处理比边读边处理快;5. 单线程从头到尾一次读文件比多线程分别读文件各部分快(非固态硬盘上);6. 读固态硬盘上的文件比读普通硬盘上的文件快;原创 2013-11-26 17:24:30 · 1878 阅读 · 0 评论