MFC中在工作线程下画图(自定义消息的发送)

来源:互联网 发布:淘宝亚马逊礼品卡 编辑:程序博客网 时间:2024/04/28 11:24

有两种方法:

 

由于产生的线程函数只能为类中的static函数或全局函数(这里假设线程函数为view类的static成员函数),由于线程函数为static,因此不能

 

直接访问view类的非static成员函数,也就不能用CClientDC之类的成员函数绘图,如果用全局的GetDC,也会同样不能用常规的方法取得

 

hwnd,这时可用办法:

 

CMainFrame *p=(CMainFrame*)AfxGetApp()->m_pMainWnd;

 

CView *pv = (CView *)p->GetActiveView();

 

来取得指向view类的指针,所有问题可以解决了

 

方法一:

 

用上面提到的方法直接在线程函数中绘图,示例代码

 

 

方法二:

 

发送自定义消息:在工作线程中发送消息给view类,在view类的消息处理函数中画图

 

发送定义定消息的方法:

 

1、给自定义消息一个ID值:在WM_USER的基础加上一个整数,范围不能超过0X7FFFF

 

2、在view类的定义中,声明函数

 

3、添加消息映射

 

4、编写消息处理函数

 

示例代码:  

 

 

 

 

 

 

原创粉丝点击