DoubleLi

qq: 517712484 wx: ldbgliet

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

2013年4月27日

摘要: MFC 分割窗体(Splitter Windows)<reference MSDN Microsoft Foundation Class Library and Templates TNO 029>文档描述MFC中的CSplitterWnd类,该类用来支持窗体的分割和管理分割后每一个子窗格(pane)的大小1 分割窗体风格(Splitter Styles)CSplitterWnd类支持2种不同风格的分割窗口1.1 静态分割(static splitter)分割的窗格(pane)在分割窗体(splitter window;)创建时创建,而且顺序,数量不会变化,分割控制条(Splitt 阅读全文
posted @ 2013-04-27 20:48 DoubleLi 阅读(1434) 评论(0) 推荐(0)

摘要: MFC中对话框的数据交换(DDX)和数据校验(DDV)<reference MFC TNO 26>DDX : dialog data exchangeDDV : dialog data validation文档描述MFC中的DDX DDV机制,如何使用DDX_和DDV_ 函数和定制自己的DDX_ ,DDV_函数;Dialog Data Exchange概要:对话框的数据交换不依赖于任何宏来实现,全部依赖于C++代码实现,唯一特别之处在于每一个对话框如果想处理自己的数据交互必须重载一个虚函数void CMyDialog::DoDataExchage(CDataExchage* pDX 阅读全文
posted @ 2013-04-27 20:47 DoubleLi 阅读(1191) 评论(0) 推荐(0)

摘要: MFC相关技术说明:<可参阅MSDN MFC TNO 3>Mapping of Windows Handles to ObjectsMFC对象与Win32 SDK句柄的映射关系说明: MFC使用C++对象封装Win32句柄(操作系统资源调度单元 HANDLE),所以在概念上一定要把MFC中的关于C++对象和WIN32句柄对象的概念区分开来,以下讨论就是MFC C++对象如何封装关联句柄相关函数与技术:1 FromHandle()FromHandle(HANDLE handle);//MFC 类成员的静态方法用于创建一个与句柄关联临时有效的MFC对象ie:CWnd *pWnd = C 阅读全文
posted @ 2013-04-27 20:46 DoubleLi 阅读(462) 评论(0) 推荐(0)

摘要: MFC相关技术说明:<可参阅MSDN MFC TNO 5>MFC 中通过通过不同于SDK的switch的方法来处理WINDOWS消息,由消息映射表(Message Map)和虚函数多态来处理指定的窗体消息1 声明一个消息映射表(Message Map)在能处理消息的类中中添加宏DECLARE_MESSAGE_MAP()注 深入浅出MFC中有更详尽系统的概述 这里只介绍几个宏定义这个宏实现了3个功能:1 私有数据成员声明 AFX_MESSAGEMAP_ENTRY _messageEntries;数组2 保护数据成员声明 AFX_MESSAGE_MAP _messageMap指向_me 阅读全文
posted @ 2013-04-27 20:45 DoubleLi 阅读(775) 评论(0) 推荐(0)

摘要: MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法<参考资料 MSDN MFC TNO 15>文档将概述MFC中定制自定义控件的3种方法:拥有者绘制控件(Owner Drawing Control and Menu) 自绘制控件(self drawing control and menu) 和子集化(subclass)1 使用MFC方法定制控件必备的几个基本概念:控制定制风格的控件的几个标准Windows消息:WM_MEASUREITEMWM_COMPAREITEMWM_DELETEITEMWM_DRAWITEM消息的详细说明 阅读全文
posted @ 2013-04-27 20:44 DoubleLi 阅读(811) 评论(0) 推荐(0)

摘要: 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句 #endif 方式二: #pragma once ... ... // 声明、定义语句 #ifndef的方式受C/C++语言标准支持。它不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件(... 阅读全文
posted @ 2013-04-27 15:34 DoubleLi 阅读(3815) 评论(0) 推荐(1)

摘要: tsvn 带有一个命令行程序 subwcrev.exe. 可以对一个指定文件进行一些宏替换, 比如: 将 $WCREV$ 替换成当前版本号. 这个是最有用的. 详细帮助见http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html 以 vc6 为例, 文件的版本信息保存在 rc 文件. 编译成 res 文件, 然后和其他 obj 一起 link. 现在的思路就是. 编辑 rc 文件, 将版本号比如 2.2.4.0 改成 2.2.4.$WCREV$, 在每次 link 之前, 先用 subwc. 阅读全文
posted @ 2013-04-27 09:12 DoubleLi 阅读(637) 评论(2) 推荐(0)

2013年4月26日

摘要: 为了使软件版本号的最后一位,即修订号与由svn管理的代码库修订号保持一致并自动更新,可以利用VS2005的生成事件和 svn 中的 subwcrev 程序实现,步骤如下:工具/原料Visual Studio 2005 SVN 客户端( TortoiseSVN 或其他 ) 步骤/方法编写一个模板文件,比如取名为 version_template.h,内容如下#ifndef _VERSION_H_#define _VERSION_H_#define VER_MAJOR 1#define VER_MINOR 0#define VER_REVISION $WCREV$#endif //!_VERSIO 阅读全文
posted @ 2013-04-26 20:58 DoubleLi 阅读(235) 评论(0) 推荐(0)

摘要: 临界区(Critical Section) 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区包含两个操作原语: EnterCriticalSection() 进入临界区 LeaveCriticalSection() 离开临界区 EnterCriticalSection()语句执行后代码将进入临界区以后无论发生什么,必须确保与之匹配的.. 阅读全文
posted @ 2013-04-26 17:06 DoubleLi 阅读(356) 评论(0) 推荐(1)

摘要: Visual C++开发工具与调试技巧整理 自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,呵呵,总是需要上网查资料来解决,在这里把自己用到上网查的一些技巧摘录如下,希望对大家有用,省去大家再去搜索的烦恼。1.如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。注 阅读全文
posted @ 2013-04-26 14:10 DoubleLi 阅读(474) 评论(0) 推荐(0)

上一页 1 ··· 416 417 418 419 420 421 422 423 424 ··· 474 下一页