Tag: C/C++
All the articles with the tag "C/C++".
WTL多页面显示实现方法
Published: at 03:34 AM这里假设一个主对话框CMainDlg有三个页面CPageFirstDlg、CPageSecondDlg、CPageThirdDlg; 1. 三个页面属性StyleChild, Border:None; 2. 成员变量: CPageFirstDlg mpageFirstDlg; CPageSecondDlg mpageSecondDlg; CPageThirdDlg mpageThirdDlg; 3. 设置它们的...
WTL按钮重绘
Published: at 03:30 AM下面的类不是我写的,我只简单介绍一下用法: 1. 将AtlBitmapSkinButton.h头文件导入到工程中; 2. 添加include "AtlBitmapSkinButton.h"头文件; 3. 添加按钮控件IDCBUTTON1,并将其Ower Draw属性改为True; 4. 在 BEGINMSGMAP(CDialog) ...... REFLECTNOTIFICA...
内存映射文件
Published: at 03:28 AM内存文件映射:一种内存管理方法,使程序可以像访问内存一样访问文件。它使磁盘文件的全部或部分内容映射到进程虚拟地址空间的某个区域,使用它不必执行文件I/O操作也无需对文件内容进行缓冲处理。该特性是非常适合于用来管理大尺寸文件的(批:故无需担心占用内存的问题?)。 ...
临界区 互斥量 信号量 事件
Published: at 03:25 AM四种进程或线程同步互斥的控制方法 临界区通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 互斥量为协调共同对一个共享资源的单独访问而设计的。 信号量为控制一个具有有限数量用户资源而设计。 事 件用来通知线程有一些事件已发生,...
让程序只有一个应用程序实例在运行
Published: at 03:16 AM当一个应用程序正在运行的时候我们不希望双击这个应用程序的时候又开启一个新的运行实例, 而仅仅只需要激活先前的实例即可。下面介绍三种简单的方法, 都是在程序开始的时候加入代码: 第一种方法: HWND hOldWnd = NULL; /// define OLDWNDNAME "先前窗口实例的名...
函数外初始化与函数内初始化
Published: at 07:38 AM关于函数外初始化与函数内初始化之前一直分的不是太清,也不太在意。昨天终于出现了这方面的问题,所以决定好好看下,以下是这次的一些收获,先看测试代码: include "stdafx.h" include <iostream> using namespace std; bool FillStr(char &szDst, int nSize) { bo...
DLL的编写与调用,简单示例(迁移2011-03-06)
Published: at 07:34 AM新建一个DLL类型的应用程序,如:myDll.cpp include <windows.h> include <iostream> extern "C" int declspec(dllexport) DllAdd(int a, int b) { return a + b; } extern "C" 在 DLL的设计中中,,如果使用C++开发,通常在导出函数的定义中使用extern "C...
WTL CComboBox 增加所有字体名(迁移2011-03-10)
Published: at 06:18 AM今天为CComboBox控件增加系统中的字体名折腾了半天, 记录下防止再犯, 或许以后用不到。 1. 定义一个CComboBox的对象: CComboBox mcbChiFont; 2. 给上面的对象关联一个资源ID: mcbChiFont.Attach(GetDlgItem(IDCCHIFONT)); 3. 关键地方来了, 首先定义函数...
WTL 一个很好用的ToolTip(迁移2011-03-13)
Published: at 06:01 AM找到了一个老外写的很好用的ToolTip, 但是有两个小问题,终于解决了,拿出来和大家分享下。 - 问题1:有时候出现这样的情况,鼠标划上去后立马弹出提示,然后消失,最后又弹出一次; > 解决方法:mTT.SetDelayTime(TTDTRESHOW, 1000);//鼠标划上过1秒后弹出提示; - 问题...
WTL安装到VS2008和VS2010中(迁移2011-02-26)
Published: at 05:35 AMWTL是什么就不说了, 今天安装的时候遇到了一些小问题, 所以记录下。 WTL8.0只支持VS2005, 不过只需要修改几个小地方就可以在VS2008下用了。 可以下载WTL8.1就不需要修改了, 它是支持VS2008的。 1. 直接解压在AppWiz文件下有个setup90.js直接运行就可以了 但是如...