- 博客(84)
- 资源 (5)
- 收藏
- 关注
原创 句柄和指针的区别
MSDN上对HANDLE的定义 typedef PVOID HANDLE这个句柄只是从英文handle翻译过来的,只问句是什么意思难以解释,这个是我从别人的空间收集的信息,以下为直接复制希望对你有帮助。参考的连接为:http://hi.baidu.com/jizj06/blog/item/3055de99ebf2ea0d6f068c0f.h
2013-01-22 18:08:35 641
原创 MFC 最小化托盘的相关处理
程序最小化到托盘一、说明 部分1、所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。2、SDK API函数 Shell_NotifyIcon 详细参数说明查看MSDNBOOL Shell_NotifyIcon( DWORD d
2013-01-14 11:24:41 704
原创 MFC OnGetMinMaxInfo、WM_MINMAXINFO
OnGetMinMaxInfo:The framework calls this member function whenever Windows needs to know the maximized position or dimensions, or the minimum or maximum tracking size.框架调用该成员函数,只要Windows需要知道最大化的位
2013-01-12 10:36:38 2248
原创 MFC 无标题窗口移动、任务栏右键菜单
windows系统 默认的对话框可以随意移动,没有标题栏的对话框需要重载消息来实现。在使用 WM_NCHITTEST消息时,注意此消息是捕获鼠标的所有移动信息,当还需要增加右键消息处理函数时,消息将会被OnNcHitTest()捕获直接代码,记住使用套路,其中函数的使用、消息的使用,可以查看MSDN,这里不在赘述。UINT CClockTestDlg::OnNcHitTest(
2013-01-09 14:25:16 1746
原创 vc++ 程序只运行一个实例
要使应用程序只允许同时运行一个实例,可以这样做:在XXXApp::InitInstance() 函数里面开头部位添加代码。代码方案1:(直接查找该程序窗口是否已经存在)CWnd *pWndTemp = NULL;pWndTemp=CWnd::FindWindow(NULL,m_sCaption);CWnd *pWndPrev, *pWndChild; if(pWndPr
2013-01-08 16:27:53 1087
原创 vc++ 多线程、多线程同步
一、MFC 多线程分类 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而
2013-01-08 15:57:02 1016
原创 MFC 获取窗口句柄的方法
一----使用Window API 获取句柄GetNextWindow获取前一个或者后一个窗口的句柄HWND GetNextWindow( HWND hWnd, UINT wCmd);GetWindow该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄HWND GetWindow(
2013-01-07 17:13:39 1327
原创 MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
一、DestroyWindow:The MFC framework manages window destruction as well as creation for those windows associated with framework documents and views. If you create additional windows, you are responsi
2013-01-06 13:35:23 11556 1
原创 MFC WM_ERASEBKGND
在使用过程中大家可能会出现 在类向导中添加消息隐射找不到Ctrl+W 后,在最后一个选项卡Class Info里的Message filter的下拉列表选window 后再回到你的消息列表里就有了WM_ERASEBKGND消息也可以手动添加注意:1、OnEraseBkgnd函数中返回TRUE或FALSE有什么区别? WM_ERASEBKGNDReturn
2013-01-06 09:57:16 1258
原创 MFC 消息中( WPARAM wParam,LPARAM lParam)包含信息
windows的消息具有以下两个参数: (1)字参数(wParam) (2)长参数(lParam) 字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体。附加信息的消息号取决于消息号。一、wParam和lParam消息 :部分说明需要查看MSDN例如:WM_SIZEwParam Specifies the type of resizin
2013-01-05 16:02:06 2925 1
原创 MFC PreTranslateMessage
一、PreTranslateMessage 说明CWnd::PreTranslateMessageMSDN:Used by class CWinApp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions
2013-01-05 15:25:03 1029
转载 MFC 改变对话框的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用次序
设置对话框色彩及背景图片可在OnCtlColor(),OnEraseBkgnd(),OnPaint()里设置,对话框初始化完毕,显示时调用OnSize()->OnEraseBkgnd(),->OnPaint()->OnCtlColor(), 1、若想改变对话框大小,比如全屏显示ShowWindow(SW_SHOWMAXIMIZED);UpdateWindow();此中 ShowWind
2013-01-05 13:58:13 1893
转载 MFC 对窗口贴图
要修改窗口的背景-----------双缓存方法(将要绘制的东西,先绘制到内存DC,再将绘制好的内存DC绘制到屏幕上)步骤如下: 1、导入一个位图文件。 2、创建一个View窗体的删除背景时的相应函数 BOOL CWndMapView::OnEraseBkgnd(CDC* pDC) 或者在view类的OnDraw响应函数 void CWndMapView
2013-01-05 13:34:19 832
原创 MFC Windowproc函数
MSDN:The WindowProc function is an application-defined function that processes messages sent to a window. TheWNDPROC type defines a pointer to this callback function.WindowProc is a placeholder for
2013-01-05 11:34:02 3790
原创 MFC OnCommand和OnCmdMsg
1、首先两者都是虚函数CWnd::OnCommand,CCmdTarget::OnCmdMsg2、看源码BOOL CWnd::OnCommand(WPARAM wParam, LPARAM lParam) // return TRUE if command invocation was attempted{ UINT nID = LOWORD(wParam); HW
2013-01-05 11:32:42 2269
原创 MFC CToolTipCtrl使用
在界面处理经常会使用到 CToolTipCtrl类一、CtoolTipCtrl封装了一个工具提示的控件,可弹出一个单行的小窗口来显示一些描述信息,大多时候它是隐藏的,除非用户将光标移到要显示提示的工具上面,并且停留大概半秒的时间它才显示,当单击鼠标或者移走光标的时候这个提示窗口就会消失二、使用方式一:只适用于静态控件、不适用于向树型控件这样的位置不固定的控件(因为树型控件经常被折叠和展开)
2013-01-04 18:18:37 1882
原创 MFC OnCtlColor函数
MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.在界面处理的时候很有用处因此可以重载WM_CTLCOLOR消息的响应函数.【MSDN】此函数的原型:The framework calls this member function when a child control is about to be drawnafx
2012-12-30 15:06:19 3205
原创 MFC 后台执行过程--消息路由
MFC 消息处理顺序MFC中处理消息的顺序----int CWinThread::Run() 中底层系统将消息给 AfxWndProc()1. AfxWndProc()接收消息,寻找消息所属的CWnd对象,然后调用AfxCallWndProc( )。2. AfxCallWndProc()存储消息(消息标识符和消息参数)供未来参考,然后调用WindowProc( )。
2012-12-30 14:55:00 725
原创 C++ 继承(四、多重继承)
多重继承概念:C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承。优缺点:1、多重继承的优点很明显:简单,清晰,更有利于复用。不会因为基类一个小小的改变而大张旗鼓去改代码。2、缺点:1>二义性 两个基类中有同名方法的时候,你不得不在子类的调用中指明此方法出自那个基类。这看起来有些麻烦,幸好在你迷糊的时候,编译器会提醒你。2>钻石继承:在最终子类
2012-12-27 14:13:54 1118 1
原创 C++ 继承(三、子类的拷贝构造和拷贝赋值)
子类的拷贝构造函数和拷贝赋值运算符--------不考虑多重继承基本原则:子类一定要调用基类的相应函数要点:1、缺省拷贝构造和拷贝赋值在复制子类部分之前会先复制其基类部分2、如果自己提供拷贝构造和拷贝赋值,就需要手动地对基类部分进行拷贝构造和拷贝赋值,否则该部分将会以缺省方式被构造或不进行赋值.实例:/*子类的拷贝构造函数和拷贝赋值函数*/#include us
2012-12-27 13:19:52 2813
原创 C++ 继承(二、子类的构造函数和析构函数)
要点详解:一、子类隐式调用基类的构造函数 说明: 如果子类的构造函数没有显式地调用基类的构造函数,那么系统就会调用基类的无参构造函数, 但是前提是基类必须有无参构造函数; 如果基类中没有无参构造函数编译将报错。(提示:没有匹配的函数) 实例: /*子类的构造*/#include using namespace std;
2012-12-27 11:29:30 1254
原创 Linux 命令 ctags使用详解
1.安装ctags ()(1)到http://ctags.sourceforge.net/下载ctags源码ctags-5.7.tar.gzhttp://prdownloads.sourceforge.net/ctags/ctags-5.7.tar.gz(2)解压并安装tar zxvf ctags-5.6.tar.gzcd ctags-5.6./configure &&
2012-12-26 10:41:52 2363
原创 MFC 修改文件、文件夹时间属性 (CreateFile GetFileTime SetFileTime)
翻译MSDN:CreateFile Creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe. The func
2012-12-25 13:48:22 2926
原创 C++ 继承(一、语法以及三种继承方式的要点)
一、语法 class 子类名: 继承方式1 基类名1,继承方式2 基类名2,...{ //子类定义; };二、继承的基本要点: 1> 一个子类对象在任何时候都可以作为一个基类类型的对象,而不必使用显式类型转换,前提是两者(子类及其基类)都是通过指针或引用操作; 2>在子类中可以直接使用基类的所有公有和保护成员,就像它们是在子类中声明的那样,但是基类的私有成员
2012-12-25 12:34:42 1336
原创 C++ 操作符重载、友元、类型转换操作符、五种类型转换、函数操作符(一)
=====================================================================算数操作符:+-*/%关系操作符:>逻辑操作符:&& || !位操作符:&、|、~、^下标操作符:[]取地址操作符:&解引用操作符:*插入操作符:提取操作符:>>取内存大小操作符:sizeof()一、操作符与操作符函数
2012-12-24 19:23:51 1228 2
原创 C++ 操作符重载、友元、类型转换操作符、五种类型转换、函数操作符(二)
五、成员和友元当双目操作符的两个操作数不是同一类型时,往往需要把操作符函数定义为调用对象(左操作数)类型的成员,同时也是参数对象(右操作数)类型的友元。C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。先谈谈废话: C++ 程序的设计一切是为了运行效率1、我们已知道类具备封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员
2012-12-24 19:23:12 862
原创 C++ 操作符重载、友元、类型转换操作符、五种类型转换、函数操作符(三)
七、类型转换操作符和自定义类型转换A a;B b (a);B b = a;B b = static_cast (a);1. 可以通过为目标类型提供具有类型转换功能的构造函数完成自定义类型转换,也可以通过为源类型提供类型转换操作符达到同样的目的。2. 通过使用explicit关键字可以强制通过构造函数完成的类型转换必须显式完成。3. 类型转换操作符函数operator
2012-12-24 19:22:18 930
原创 C++ sizeof 在类中的使用
说明:1、空类 总是返回 1 原因:类要创建对象,要预留空间;最小的内存单位为 1; (类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址)2、类 跟 struct一样 需要考虑对齐和补齐的问题 3、类中含有 static 成员 sizeof不计其大小 原因:因为static成员是分配在全局区为类的所有对象共享4、带virtua
2012-12-24 14:43:52 680
原创 C++ 拷贝构造和拷贝赋值运算符
第一部分:拷贝构造函数类类型的变量需要使用拷贝构造函数来完成整个复制过程拷贝构造函数的形式: A (const A &a) // A为类名对于一个类X, 如果一个构造函数的第一个参数是下列之一:a) X&b) const X&c) volatile X&d) const volatile X&且没有其他参数或其他参数都有默认值,那么这个函数是拷贝构造
2012-12-24 11:29:26 1880
原创 C++ 模板使用详解
模板语法一、函数模板通用语法:template返回类型 函数模板名 (形参表) {...}特化语法:template返回类型 函数模板名 (形参表) {...}二、类模板通用语法:template class 类模板名 {...}; 声明和实现分开:template class 类模板名 {...};template返回类型 类模板名
2012-12-21 19:24:19 1181
翻译 C++泛型设计 - 模板规格(译)
C++泛型设计 - 模板规格(译)MSDN:C++关键字template可以用来声明一批参数化的类(模板类)或函数(模板函数)。一般使用格式如下:The template declaration specifies a set of parameterized classes or functions.template template-parameter-list > dec
2012-12-20 23:17:19 539
原创 MSSQL 存储过程(一)
一、SQL存储过程的概念,优点及语法 整理在学习程序过程之前,先了解下什么是存储过程?为什么要用存储过程,他有那些优点 定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊? Micro
2012-12-19 13:04:08 947
原创 linux hash_map使用
使用说明 因为hash_map以前不属于标准库,而是后来引入的。所以在windows下需要使用stlport,然后在setting中加入Additional library path。在linux下使用gcc的时候,引入,使用的时候也说找不到hash_map,而这种后来引入标准库的有两种可能: 1、一种是它被放在了stdext名空间里,那么就要使用using na
2012-12-04 13:30:15 658
原创 linux SIGPIPE相关
linux SIGPIPE相关1、在linux客户端中需要用到 来处理信号 SIGPIPE#ifdef SIGPIPE signal(SIGPIPE,SIG_IGN);#endif 在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数
2012-11-16 13:29:11 639
原创 linux 查找命令(find which whereis grep locate type)
查找命令:find which whereis grep locate type 1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 find的使用格式如下: $ find - : 所要搜索的目录及其所有子目录。默认为当前目录。 - : 所要搜索的文件的特征。 - : 对搜索结果进行特定的处理。 如果什么
2012-11-16 11:38:28 583
原创 Linux 压缩解压命令详解(tar、zip)
tar命令man tar 格式: tar [options] unzip [-Z] [-cflptTuvz[abjnoqsCKLMVWX$/:]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]说明:-c 【--create 建立新的备份文件】-C 或--d
2012-11-16 11:16:58 1158
原创 MFC 获得各个类的指针、句柄 ID 和 this指针的使用
MFC 无论是多文档还是单文档,都存在指针获取和操作问题。 首先一般获得本类(视,文档,对话框都支持)实例指针 this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。 这其中的关键在于理解 m_pMainWnd, AfxGetApp(),AfxGetMainWnd() 的意义!一、文档1) 在View中获
2012-11-04 15:42:59 1356
原创 PreCreateWindow、PreSubclassWindow、SubclassWindow 解析
CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别1、函数原型virtual BOOL PreCreateWindow( CREATESTRUCT& cs );virtual void PreSubclassWindow( );BOOL SubclassWindow( HWND hWnd
2012-11-01 16:10:12 900
原创 MFC 解决AnimateWindow使用出现的问题:undeclared identifier
在使用 AnimateWindow 函数实现动画窗口时 出现的问题error C2065: 'AnimateWindow' : undeclared identifiererror C2065: 'AW_HIDE' : undeclared identifiererror C2065: 'AW_BLEND' : undeclared identifier原因:
2012-10-31 16:13:44 1617
转载 VC++/MFC(VC6)开发技术精品学习资料下载汇总
VC++/MFC(VC6)开发技术精品学习资料下载汇总没有整理:找到自己能用的就行了....2012-12-18 :CSDN社区有人提供了很多资料http://bbs.csdn.net/topics/390320308规范教程PDF,101条规则、准则与最佳实践.rarA1式精解(GoF_23种设计解析附C++实现源码).pdfC++ 设计新思维:范型编程与设
2012-10-31 09:24:46 3170 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人