随笔分类 -  VC学习

CAsyncSocket
摘要:这几天都在研么MFC的套接字类CAsyncSocket的用法, 将一些心得和实践中遇到的问题总结一下。 一、 一些网络的基本概念 1. 同步:指的是发送方不等接收方响应,便接着发下个数... 阅读全文

posted @ 2009-03-18 19:37 wqj1212 阅读(13061) 评论(3) 推荐(0)

带参数宏定义和函数的区别
摘要:#define S(a,b) a*b area=S(3,2) int S(int a,int b) { int s; s=a*b; return(s); } 这两个有什么区别 #define S(a,b) a*b area=S(3,2) 尽量少使用宏定义。宏定义是把S(a,b)简单地替换成a*b 这样会产生问题,最典型的两种: 1.缺括号,比如aera=S(x+y,x-y)... 阅读全文

posted @ 2008-09-24 08:37 wqj1212 阅读(10496) 评论(0) 推荐(1)

虚函数
摘要:在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念。因为它充分体现了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。比如在微软的MFC类库中,你会发现很多函数都有virtual关键字,也就是说,它们都是虚函数。难怪有人甚至称虚函数是C++语言的精髓。 那么,什么是虚函数呢,我们先来看看微软的解释: 虚函数是指一个... 阅读全文

posted @ 2008-05-30 10:38 wqj1212 阅读(409) 评论(0) 推荐(0)

静态变量
摘要:静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 由此看来, 一个变量可由stati... 阅读全文

posted @ 2008-04-17 14:24 wqj1212 阅读(528) 评论(1) 推荐(0)

动态连接库和静态连接库有什么区别?
摘要:静态库在程序运行时就会装入内存,而动态库在调用的时候才装入! 阅读全文

posted @ 2008-04-15 16:32 wqj1212 阅读(929) 评论(1) 推荐(0)

如何优化C语言代码(程序员必读)
摘要:如何优化C语言代码(程序员必读) 1、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效率。.选择一种合适的数据结构也很重要,比如你在一堆随机存放的数中使用了大量的插入和删除指... 阅读全文

posted @ 2008-04-15 16:16 wqj1212 阅读(1887) 评论(1) 推荐(0)

关于静态类
摘要:一、什么是静态类 所谓静态类即在类的前面用static关键字来修饰的类。 这样的类 1,不能被实例化 2,是密封类 3,仅包含静态成员 4,不包含实例构造函数 二、为什么使用静态类 静态类无需创建实例,用类名就可能直接访问其成员,这时也许有人会说了,如果我只把我的成员写成static的,类不标志为静态的,我用类的名字也可访问静态的成员啊,何必多此一举非要把类标志为static的呢?这有就有一说了... 阅读全文

posted @ 2008-04-15 16:05 wqj1212 阅读(447) 评论(0) 推荐(0)

CBitmapButton的使用
摘要:CBitmapButton的使用 CBitmapButton作为MFC的控件类,并不为很多人所使用,因为现在网上遍布着从CButton派生的各种各样的按钮类,其中最为著名的就是CButtonST类了。但是最近在CSDN上看到几个问题都是使用CBitmapButton类,但是由于使用错误、不当而造成程序崩溃或者错误的。所以总结一下CBitmapButton类的使用,希望能帮助一些初学者... 阅读全文

posted @ 2008-04-09 13:38 wqj1212 阅读(875) 评论(0) 推荐(0)

数据结构知识
摘要:由于查找运算的使用频率很高,几乎在任何一个计算机系统软件和应用软件中都会涉及到,所以当问题所涉及的数据量相当大时,查找方法的效率就显得格外重要。在一些实时查询系统中尤其如此。因此,本章将系统地讨论各种查找方法,并通过对它们的效率分析来比较各种查找方法的优劣。 查找的基本概念1、查找表和查找 一般,假定被查找的对象是由一组结点组成的表(Table)或文件,而每个结点则由若干个数据项组成。并假设每... 阅读全文

posted @ 2008-04-05 11:14 wqj1212 阅读(1726) 评论(0) 推荐(0)

鼠标绘图读取所有点
摘要:int m_NumStrokes=0; //笔画数 int m_NumPoints=0; //所有点数 int m_strokePoint=0; //每一笔画的点数 int PixelHandXY[320*240*2]; //存放点的坐标 #define LINE_END_CONST_X (9999) //每一笔画开始的标志,X坐标 #define LINE_END_CONST_... 阅读全文

posted @ 2008-03-25 15:00 wqj1212 阅读(444) 评论(0) 推荐(0)

CButtonST使用技巧(一)
摘要:... 阅读全文

posted @ 2008-03-17 10:53 wqj1212 阅读(1011) 评论(0) 推荐(0)

在你的程序中如何使用CButtonST类
摘要:原文出处:CButtonST v4.1 下载源代码 首先在你的工程中加入如下文件: BtnST.h BtnST.cpp 从v3.5版本开始,CButtonST支持使用BCMenu类创建菜单。为了能够使用BCMenu,你必须在 BtnST.h中加入下面二行: #define BTNST_USE_BCMENU #include "BCMenu.h" 当然,你也必须在你的工程文件中加入下面的头文件: B... 阅读全文

posted @ 2008-03-15 22:19 wqj1212 阅读(3022) 评论(0) 推荐(0)

自绘按钮的实现
摘要:... 阅读全文

posted @ 2008-03-15 22:12 wqj1212 阅读(849) 评论(1) 推荐(0)

LoadBitmap
摘要:1.Platform SDK 如果位图的ID定义为IDB_BITMAP1则 HBITMAP hBitmap=LoadBitmap(AfxGetInstanceHandle(),(LPSTR)IDB_BITMAP1); 如果位图的ID定义为"IDB_BITMAP1"则 HBITMAP hBitmap=LoadBitmap(AfxGe... 阅读全文

posted @ 2008-03-15 21:51 wqj1212 阅读(3564) 评论(0) 推荐(1)

改变对话框控件的颜色
摘要:在InitInstance()中加入 SetDialogBkColor(RGB(220,210,180),RGB(0,0,255)); 阅读全文

posted @ 2008-03-15 16:49 wqj1212 阅读(345) 评论(0) 推荐(0)

SkinMagic库界面美化
摘要:使用SkinMagic Toolkit美化界面 [准备工作] 1、将SkinMagicTrial.dll放置在调试目录 2、设置库文件目录,在项目[连接器]的[附加依赖项]中加入库SkinMagicTrial.lib 3、在项目的stdafx.h文件中加入头文件 #include "SkinMagicLib.h" [创建过程] 1、初始化SkinMagic库: 要使用SkinM... 阅读全文

posted @ 2008-03-15 16:22 wqj1212 阅读(7031) 评论(0) 推荐(0)

读,写数据
摘要:把数据写到文件中 //把数据写到文件中 FILE *file=fopen("文件名","wt"); if(file==NULL) { ShowInfoInSetUserSpace("不能保存用户坐标系!",ICON_ERROR); } fprintf(file,"%lf %lf %lf %lf\n%lf %lf %lf %lf\n%lf %lf %lf %lf\n%lf %lf %lf ... 阅读全文

posted @ 2008-03-12 17:38 wqj1212 阅读(326) 评论(0) 推荐(0)

ini文件操作类
摘要:前言: 相信很多朋友在编写自己的程序中,都需要把一些数据先期导入到程序中进行初始化。那么这个时候,比较好的做法就是把你所有的数据写入一个ini文件,然后在程序去读ini文件中的数据对行初始化。 一.INI简介 那么什么是ini文件呢?ini文件是Initialization file的缩写,意即初始化文件。(从名字就可以看出它的功能了吧)。不仅你自己的程序可以使用i... 阅读全文

posted @ 2008-03-09 15:16 wqj1212 阅读(700) 评论(0) 推荐(0)

vc创建一个线程的方法:
摘要:vc创建一个线程的方法: 创建线程使用CreateThread The CreateThread function creates a thread to execute within the address space of the calling process. HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,... 阅读全文

posted @ 2008-03-06 17:40 wqj1212 阅读(8804) 评论(0) 推荐(0)

VC中利用多线程技术实现线程之间的通信
摘要:当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是必需... 阅读全文

posted @ 2008-03-06 16:13 wqj1212 阅读(493) 评论(0) 推荐(0)

导航