MFC常见错误和知识点

1、字符串转换问题(不存在从 "CString" 到 "const char *" 的适当转换函数)


解决办法:属性-->配置属性-->常规-->字符集-->修改为(使用多字节字符集)

MFC常见错误和知识点_第1张图片

2、error C4996: 'fopen': This function or variable may be unsafe.

解决办法:属性-->配置属性-->预处理器-->预处理器定义-->添加一个(_CRT_SECURE_NO_WARNINGS)

MFC常见错误和知识点_第2张图片

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界面传参数

①需要主窗口调用子窗口

②在子窗口中添加类的成员变量(记录传参的值)

③主窗口创建子窗口类的对象,通过对象给成员变量赋值即可(切记变量只能添加在类中)

你可能感兴趣的:(C++)