请高手指点void CThreadTestDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CString sValue="";
edit_value=(12-(float)m_slider.GetPos()/2);//得到的是编辑框中要显示的值
data=pow(10,edit_value/20);//得到将要发给下位机的值
slider_pos=m_slider.GetPos();
FloToHex(0,data);
Send_Addr(addr);
Gain_param(slider_pos,Addr_Gain_In[0],0x01);
sValue.Format("%.1f",edit_value);
SetDlgItemText(IDC_EDIT1,sValue+"dB");
*pResult = 0;
}
这是滑动条的响应函数DWORD WINAPI CThreadTestDlg::ThreadFunc(LPVOID lpParam)
{
CThreadTestDlg*pThread=(CThreadTestDlg*)lpParam;
CByteArray sendbyte;
while(TRUE)
{
const char bVal[13]={0xc3,0xa5,0x0d,0x01,pThread->add[0],pThread->add[1],pThread->Wei,pThread->BarValue[0][0],
pThread->BarValue[0][1],pThread->Hexdat[0][0],pThread->Hexdat[0][1],pThread->Hexdat[0][2],pThread->Hexdat[0][3]};
sendbyte.RemoveAll();
sendbyte.SetSize(13);
for (UINT i=0;i<13;i++)
sendbyte.SetAt(i,bVal[i]);
serial_port.SetOutput(COleVariant(sendbyte));
Sleep(1000);
}
return 0;
}
这是线程函数
我想要实现的是当我滑动slider控件的时候让这个线程开,不滑动的时候这个线程不执行!我该怎么做啊?
{
// TODO: Add your control notification handler code here
CString sValue="";
edit_value=(12-(float)m_slider.GetPos()/2);//得到的是编辑框中要显示的值
data=pow(10,edit_value/20);//得到将要发给下位机的值
slider_pos=m_slider.GetPos();
FloToHex(0,data);
Send_Addr(addr);
Gain_param(slider_pos,Addr_Gain_In[0],0x01);
sValue.Format("%.1f",edit_value);
SetDlgItemText(IDC_EDIT1,sValue+"dB");
*pResult = 0;
}
这是滑动条的响应函数DWORD WINAPI CThreadTestDlg::ThreadFunc(LPVOID lpParam)
{
CThreadTestDlg*pThread=(CThreadTestDlg*)lpParam;
CByteArray sendbyte;
while(TRUE)
{
const char bVal[13]={0xc3,0xa5,0x0d,0x01,pThread->add[0],pThread->add[1],pThread->Wei,pThread->BarValue[0][0],
pThread->BarValue[0][1],pThread->Hexdat[0][0],pThread->Hexdat[0][1],pThread->Hexdat[0][2],pThread->Hexdat[0][3]};
sendbyte.RemoveAll();
sendbyte.SetSize(13);
for (UINT i=0;i<13;i++)
sendbyte.SetAt(i,bVal[i]);
serial_port.SetOutput(COleVariant(sendbyte));
Sleep(1000);
}
return 0;
}
这是线程函数
我想要实现的是当我滑动slider控件的时候让这个线程开,不滑动的时候这个线程不执行!我该怎么做啊?
解决方案 »
- CTreeCtrl的单击问题
- CListCtrl显示汉字的问题
- 有谁知道CryptExportKey的key的格式, 如何与标准的PKCS#1对接?
- 在TreeList中,如何得到某一Item的索引编号是多少!
- 向自定义的 CWinthread中PostThreadMessage,线程中消息处理函数没反应,可能是怎么回事?
- 高分等你拿
- 欢迎加入qq群->武汉软件开发社区
- ●●请问开发手机程序一般用什么语言?●●
- 我想改变对话框最大化最小化关闭按钮的大小,如何才能实现?要求不能用贴图的方式实现。
- opencv写的小程序,请问这个问题如何解决(vs2010,opencv)
- MFC程序的CPU使用率和线程数
- VC 操作Excel表 怎么将一个Excel表中的sheet1复制到另一个Excel表sheet1中
DWORD WINAPI CThreadTestDlg::ThreadFunc(LPVOID lpParam)
{
CThreadTestDlg*pThread=(CThreadTestDlg*)lpParam;
CByteArray sendbyte;
while(TRUE)
{
const char bVal[13]={0xc3,0xa5,0x0d,0x01,pThread->add[0],pThread->add[1],pThread->Wei,pThread->BarValue[0][0],
pThread->BarValue[0][1],pThread->Hexdat[0][0],pThread->Hexdat[0][1],pThread->Hexdat[0][2],pThread->Hexdat[0][3]};
sendbyte.RemoveAll();
sendbyte.SetSize(13);
for (UINT i=0;i<13;i++)
sendbyte.SetAt(i,bVal[i]);
serial_port.SetOutput(COleVariant(sendbyte));
Sleep(1000);
SuspendThread(hThread); //让线程挂起
}
return 0;
}
void CThreadTestDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{ //线程离得函数不执行,复杂就给我提个建议就好,简单的话捎给我写一下。
// TODO: Add your control notification handler code here
// m_ThreadRun=TRUE;
CString sValue="";
ResumeThread(hThread);//结束线程的挂起
edit_value=(12-(float)m_slider.GetPos()/2);//得到的是编辑框中要显示的值
data=pow(10,edit_value/20);//得到将要发给下位机的值
slider_pos=m_slider.GetPos();
FloToHex(0,data);
Send_Addr(addr);
Gain_param(slider_pos,Addr_Gain_In[0],0x01);
sValue.Format("%.1f",edit_value);
SetDlgItemText(IDC_EDIT1,sValue+"dB");
*pResult = 0;
}
我刚学线程这里我用了一个SuspendThread(hThread); //让线程挂起
和ResumeThread(hThread);//结束线程的挂起。函数请高手给我鉴定一下这样合适吗?