1、字符串转换问题(不存在从 "CString" 到 "const char *" 的适当转换函数)
解决办法:属性-->配置属性-->常规-->字符集-->修改为(使用多字节字符集)
2、error C4996: 'fopen': This function or variable may be unsafe.
解决办法:属性-->配置属性-->预处理器-->预处理器定义-->添加一个(_CRT_SECURE_NO_WARNINGS)
3、主窗口调动子窗口
①新建一个子窗口,子窗口的名字和类的名字后缀保持一致
子窗口: IDD_hello 类:hello
②主窗口,添加子窗口头文件
#include"hello.h"
③创建子窗口的对象,并调用函数
hello stp;
stp.DoModal();
4、MFC关闭窗口(点击右上角红叉),CLOSE消息事件
应用:在关闭前,终止子线程,可以在消息事件函数中关闭线程
操作:点击窗口--->类向导-->消息--->WM_CLOSE(程序中会添加相应的函数,在函数中添加自定义代码)
5、MFC主窗口调用子窗口,打开子窗口的同时,显示图片,PAINT消息事件
说明:一般是通过按钮触发事件
操作:点击窗口--->类向导-->消息--->WM_PAINT
CDC *pDC = GetDlgItem(IDC_STATIC)->GetDC();
//保存根据ID获得窗口指针再获取与该窗口关联的上下文指针
HDC hdc = pDC->GetSafeHdc(); // 获取设备上下文句柄
CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(&rect); //获取显示框大小
CString strFileName = "..//video.png"; //当前项目下
IplImage *image = cvLoadImage(strFileName);
CvvImage cimg;
cimg.CopyOf(image, image->nChannels);
cimg.DrawToHDC(hdc, &rect);
6、MFC界面传参数
①需要主窗口调用子窗口
②在子窗口中添加类的成员变量(记录传参的值)
③主窗口创建子窗口类的对象,通过对象给成员变量赋值即可(切记变量只能添加在类中)