MFC常见错误和知识点

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

①需要主窗口调用子窗口

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

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值