MFC项目笔记整理
从3月2号开始一直在做实训的文件加密系统,一转眼系统的基本功能已经实现,全组都在集中精力搞文件驱动加密。在完成基本功能时,也遇到了很多问题,现把这段时间积累的笔记整理存档下。
检查指定目录是否存在
函数原型:
BOOL MakeSureDirectoryPathExists( PCSTR Dirpath );
函数作用:
该函数的作用是检查指定目录是否存在,如果不存在则创建整个Dirpath所表示的整个目录。
参数:
Dirpath:要检查的目录名。如果是路径不是文件名,需以 '\' 结尾。
返回值:
如果目录存在,返回TRUE;如果不存在但全部路径创建成功,返回TRUE;
如果不存在且创建失败,返回FALSE。
函数使用
一次性建立多级目录(用CreateDirectory只能一级一级的建立)。
这个函数并不存在于 Kernel32.dll 中,需要包含头文件imagehlp.h,并链接imagehlp.lib。
C语言fopen()函数:打开一个文件并返回文件指针
头文件:#include <stdio.h>
函数原型:
FILE * fopen(const char * path, const char * mode);
参数:
path为包含了路径的文件名。
mode为文件打开方式。
mode有以下几种方式:
- r 以只读方式打开文件,该文件必须存在。
- r+ 以读/写方式打开文件,该文件必须存在。
- rb+以读/写方式打开一个二进制文件,只允许读/写数据。
- rt+以读/写方式打开一个文本文件,允许读和写。
- w 打开只写文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件。
- w+ 打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
- a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)。
- a+ 以附加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符 不保留)。
- wb 以只写方式打开或新建一个二进制文件,只允许写数据。
- wb+ 以读/写方式打开或建立一个二进制文件,允许读和写。
- wt+ 以读/写方式打开或建立一个文本文件,允许读写。
- at+ 以读/写方式打开一个文本文件,允许读或在文本末追加数据。
- ab+ 以读/写方式打开一个二进制文件,允许读或在文件末追加数据。
MFC项目中,添加窗体后,在类向导中窗体类没有事件,也没有消息项的问题解决
编写代码的时候,先添加窗体,然后添加窗体的类,之后我又更改了窗体的ID,导致更改ID之后,窗体对应类头文件中的enum { IDD = ****};还是对应原先的ID,所以当我打开窗体的视图的时候,消息和事件没有东西了。Resource.h中宏定义仍然保留着原来设置过的ID。只要修改窗体对应类头文件中的enum { IDD = ****};将IDD修改成对应的窗口ID就行。
MFC中Picture Control 图片点击事件
-
在窗体添加Picture Control控件
-
设置Picture Control 的 notify 属性为 true
-
头文件.h添加三个方法
public:
afx_msg void OnStnClickedPic();
-
源码.cpp文件添加消息映射
BEGIN_MESSAGE_MAP(Main, CDialog)
ON_STN_CLICKED(IDC_PIC_WSUS, &Main::OnStnClickedPic);
END_MESSAGE_MAP()
-
实现单击事件方法
void Main::OnStnClickedPic()
{ //添加点击事件代码 }