作为系列博文的第一篇,先写些简单的吧,也是对自己学习过的东西的总结。BitBlt首先,是最常用的贴图函数之一的BitBlt,作用是从源DC中拷贝指定大小的图片到目标DC中,至于DC是什么,这里就不再赘述了,请自行百度。下面给出该函数的参数列表:BOOL BitBlt(HDC hdcDest,// 目...
Vertical Scroll = TRUEMultiLine = TRUEHorizontal Scroll = FALSEAuto HScroll = FALSE可选设置Want Return = FALSE 可选设置Auto VScroll = TRUE
分类:
其他好文 时间:
2014-07-09 22:32:30
阅读次数:
309
看过《深入浅出MFC》书中,j.j.hou提到在创建新的线程时,最好不要直接使用CreateThread,虽然AfxBeginThread也是对CreateThread的封装,但是AfxBeginThread这个API做了很多创建线程的基础工作:调用CWinThread* pThread = (.....
分类:
其他好文 时间:
2014-07-09 19:27:26
阅读次数:
202
CMap与hash_map底层均采用hash stable实现,CMap是MFC提供的模板类。hash_map虽然目前并未纳入C++标准模板类库,但几乎每个版本的STL都提供了相应的实现。CMap与hash_map的存储于查询效率比较如下:
利用rand函数随机生成99999个整数构成查询数据集,紧接着申请9999个整数作为查询。测试两个模板类的插入与查询总时间,测试结果显示:当查询都不存在时C...
分类:
其他好文 时间:
2014-07-09 12:28:28
阅读次数:
265
定时器消息
1、 WM_TIMER
按照定时器设置的时间段,自动向窗口发送一个定时器消息WM_TIMER。优先级比较低
定时器精度比较低,毫秒级别,消息产生时间也精度比较低
2 、消息和函数
WM_TIMER : 消息ID
wParam 定时器的ID
lParam 定时器的处理函数
SetTimer
:设置一个定时器
UINT_PTR SetTimer(
...
即便是基于MFC的应用程序,建立窗口类也是会遵循如下的过程:
设计窗口类->注册窗口类->生成窗口->显示窗口->更新窗口->消息循环->消息路由到窗口过程函数处理。下面就剖析一下在MFC中是如何完成上述过程的。
(1)每个应用程序都有且仅有一个应用类的全局变量theApp,全局变量先于WinMain函数进行处理。
(2)WinMain函数体在APPMODUL.CPP文件中,定义如下:
...
分类:
其他好文 时间:
2014-07-08 16:01:46
阅读次数:
286
MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框。这里总结下自己最近使用的方法。 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新...
分类:
其他好文 时间:
2014-07-08 11:34:58
阅读次数:
136
一、程序,进程,线程程序是指令的集合,以文件形式储存在磁盘上。一个程序可以对应多个进程,一个进程代表一个实例。进程由管理进程的内核对象、地址空间组成。内核对象存放关于进程的统计信息,地址空间包含可执行模块、DLL模块和堆、栈。进程不执行任何东西,它是线程的容器,每个进程至少有一个线程。当创建一个进程...
分类:
编程语言 时间:
2014-07-06 17:56:56
阅读次数:
212
添加内容
ComboBox_AddString(hwndCtl,lpsz)
hwndCtl为此组合框的句柄,lpsz为需要添加的字符串,组合框不能直接通过id添加内容,所以需要得到这个控件的句柄,还得使用GetDlgItem()函数.
举例:
HWND hwndCombo1 = GetDlgItem(hwnd,IDC_C1);
//建立一个组合框,ID可以设置为IDC...
分类:
其他好文 时间:
2014-07-06 09:46:50
阅读次数:
271