VS MFC 多线程 定时器

今天是我在弄实时视屏的过程中遇到了很多问题

1.首先是多线程的使用,在线程中处理数据

(1条消息)vs2010 mfc c++ 多线程 - cyuyan的专栏 - CSDN博客
https://blog.csdn.net/cyuyan112233/article/details/51475331

2.我在两个图片控件上先是实时视屏的时候发现总是在打开视屏之后,其他的控件与界面都动不了了,最后看了下面这篇博客发现是MFC本身设置的问题,在显示时需要使用到定时器.

在mfc中利用opencv打开摄像头并显示在窗口上 - duhuzhen的博客 - CSDN博客
https://blog.csdn.net/duhuzhen/article/details/53133927

3.定时器的学习与使用

MFC中OnTimer定时器用法 - 净无邪博客 - CSDN博客
https://blog.csdn.net/naibozhuan3744/article/details/78554198
MFC中定时器OnTimer函数的使用 - 心-无可取代 - CSDN博客
https://blog.csdn.net/qq_33723441/article/details/54599022

OnTimer()函数用于实现控制功能,主要有三个函数实现的
SetTimer(窗口句柄,定时器ID ,时间间隔,回调函数)
(1)SetTimer():设置一个定时器开始执行计时器
(2)KillTimer():停止计时器
(3)OnTimer():是计时器所执行的代码

4.在数据处理时有提示对话框,但是他会柱塞线程,于是需要对话框提示定时消失

(1条消息)MFC之MessageBox用法 - jilong17的专栏 - CSDN博客
https://blog.csdn.net/jilong17/article/details/6943755

(1)第一种方法

(1条消息)弹出MessageBox并延迟一段时间后自动关闭的一种方法 - zheqingzheqing的博客 - CSDN博客
https://blog.csdn.net/zheqingzheqing/article/details/51855274

(2)第2种方法

(1条消息)定时消失的对话框API函数 – MessageBoxTimeout - Floydwish的博客 - CSDN博客
https://blog.csdn.net/brunomarss/article/details/53928489

(3)第3种方法

VC 定时自动关闭MessageBox弹出对话框_天路_新浪博客
http://blog.sina.com.cn/s/blog_5eea91750100oskt.html

我使用的是第三种方法,简单方便。
在需要使用的cpp文件中添加以下代码

// 添加MessageBoxTimeout支持
extern "C"
{
    int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
    int WINAPI MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
};
#ifdef UNICODE
#define MessageBoxTimeout MessageBoxTimeoutW
#else
#define MessageBoxTimeout MessageBoxTimeoutA
#endif

在需要使用的地方调用函数

// 设置1000ms自动关闭该提示对话框
		MessageBoxTimeout(NULL,"检测不到圆","提示",MB_OKCANCEL,0,1000);

你可能感兴趣的:(MFC)