目录
1、MFC中 自定义类访问主对话框控件的方法+别的自定义类发送主对话框进行按键模拟
一、参考:
1、MFC中 自定义类访问主对话框控件的方法+别的自定义类发送主对话框进行按键模拟
https://mp.csdn.net/console/editor/html/105088268
①总结:适合多看
二、操作:
1、MFC在线程调用按键检测
1、首先提前创建好按键检测事件,可以看之前的CSDN文章
BOOL CTest1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message==WM_KEYUP)
{
switch (pMsg->wParam)
{
case VK_F5:
AfxMessageBox(L"F5");
SetTimer(1,2000,NULL);
break;
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
2、开启线程
pThread=FastThreadRun(ThreadFunction,this);
void ThreadFunction(void *pd)
{
CMy01_MFCAndFlashDlg *pThis=(CMy01_MFCAndFlashDlg*)pd;
m_run=true;
while (m_run==true)
{
//1 Left_queRen
if(bDISts[inputChannel1]==inputOpen&&b_lastDISts[inputChannel1]!=inputOpen)
{
::PostMessage(pThis->m_hWnd,WM_KEYUP,81,NULL);
}
else
{
b_lastDISts[inputChannel1]=bDISts[inputChannel1];
}
}
}
3、在需要的地方调用这个按键事件(使用一个类里面的才可以)
::PostMessage(this->m_hWnd,WM_KEYUP,VK_F5,NULL);
运行结果:我在初始化对话框里面就写了调用按键检测
2、别的自定义类发送主对话框进行按键模拟
AfxGetApp()->m_pMainWnd->PostMessage(WM_KEYUP,48+0,NULL);