MFC六大关键技术
1.MFC程序的初始化过程(MFC系统内部启动过程自动加载)
2.消息映射
3.运行时类型识别(RTTI)
4.动态创建
5.永久保存
6.消息传递
概念
Edit Labels,就地修改,鼠标点击控件,就地编辑控件内的文件
item,类似CListCtrl这样的控件的一行,叫做item;一行可以有很多列,叫做subItem。
Tabstop,焦点在当前控件中停不停,为TRUE就停,为FALSE就不停
命令,Windows开发中有四种发出命令的控件,分别是菜单,按钮,工具栏和快捷键。
Accept Files,支持拖放。并让WM_DROPFILES消息有效。拖进去,鼠标弹起才叫DROP,鼠标不弹起就不叫drop。
Disabled,禁用该窗口
Set Foreground,窗口程序永远在前面。即程序置顶。
Visible,对于模式对话框,都是可见的。Visible只会影响非模式对话框。
Client Edge,窗口程序客户区边缘会陷下去。深下陷风格,编辑框本身就是Client Edge风格
static Edge,浅下陷风格
Overlapped Window,层叠式窗口。打开十个层叠式窗口,每个窗口从左上角到右下角一个一个排布,
Border,当Border为None,表示没有标题栏,没有边框,内嵌窗口常使用。
System Menu,系统菜单包括关闭,最大化,移动,最小化
Help ID,当焦点在这个控件上时,按F1可以弹出该控件的说明。说明编写需要HTML
No Hide Selection,当焦点移动到别处,选择的痕迹依然保留
Auto HScroll,当你输入文字过多,自动往右滚动
Number,只能输入0-9的字符(.和-都不支持)
函数
GetModuleFileName功能:返回包含指定模块的文件的绝对路径,这个模块必须已由当前进程加载。要定位由另一个进程加载的模块的文件,请使用GetModuleFileNameEx函数。函数原型:
DWORD GetModuleFileNameA(
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
第一个参数:已经加载到当前进程的模块的模块句柄。如果此参数为NULL,则GetModuleFileName返回当前进程所对应的可执行文件的路径。如果这个模块使用了LOAD_LIBRARY_AS_DATAFILE标志,将不会返回路劲。
第二个参数:缓冲区
第三个参数:缓冲区大小
返回值:如果函数成功,返回值是复制到缓冲区的字符串的长度,以字符为单位,不包括终止的空字符。如果缓冲区太小,无法容纳模块名,则字符串将被截断为nSize字符,包括终止的空字符,函数将返回nSize,并且函数将最后一个错误设置为ERROR_INSUFFICIENT_BUFFER。如果函数失败,返回值为0
注意:如果在两个进程中加载DLL,则一个进程中的文件名可能与另一个进程中的文件名大小写不同。