📄 消息与线程.txt
字号:
关于自定义消息:
1.首先在发送消息的头文件中声明消息变量;
#define WM_PRO_MSG WM_USER+30//自定义消息
2.在接收消息的头文件中添加
afx_msg UINT OnProMsg(WPARAM dwMsg,LPARAM dwMsg2);//自定义消息
3.在接收消息的源文件中添加
ON_MESSAGE(WM_PRO_MSG,OnProMsg)//自定义消息
3.在接收消息的源文件中添加消息响应函数
UINT CMyDlg::OnProMsg(WPARAM dwMsg,LPARAM dwMsg2)//自定义消息相应函数(接收消息)
{
m_progress1.SetPos(dwMsg);
AfxMessageBox("发送消息成功!");
return 0;
}
4.在发送消息的函数中添加发送消息语句
如从子类中发送消息给对话框时添加以下代码
PostMessage(AfxGetMainWnd()->m_hWnd, WM_PRO_MSG, (WPARAM)0, 0);
如在对话框中发送消息给对话框
::PostMessage(AfxGetMainWnd()->m_hWnd, WM_PRO_MSG, (WPARAM)0, 0);
到这里整个消息全部添加结束.
多线程.....
1.在头文件中声明多线程
static UINT ZhThread(LPVOID pParam);//读线程
2.添加多线程函数
UINT CMyDlg::ZhThread(LPVOID pParam)//工作线程
{
CMyDlg mydlg;//
//发送进度条为0的消息
::PostMessage(AfxGetMainWnd()->m_hWnd, WM_PRO_MSG, (WPARAM)0, 0);
return 1;
}
3.启动多线程
AfxBeginThread(ZhThread,this)!=NULL;//启动线程
4.如在多线程中调用对话框的函数或变量时必须在多线程函数中先声明对话框的实例如:
CMyDlg* mydlg=(CMyDlg*)pParam;//定义本类的对象用于该线程
然后用mydlg->xxxx的形式调用;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -