在view中使用ComControl

1.添加两个文件ComControl.cpp,ComControl.h
2.CTest8view.h里定义串口指针
public:
    CComControl* m_Com;
3. 新建三个菜单项

在constructe里面创建com,没有在view的构造函数里创建,因为不起作用
void CTest8View::Onconstruct() 
{
	// TODO: Add your command handler code here
	m_Com = new CComControl(this->m_hWnd);
}
4.在open里面打开串口
void CTest8View::Onopen() 
{
	// TODO: Add your command handler code here
	m_Com->m_szPortName	= "COM7";
	m_Com->m_lBaudRate	= atol("9600");
	m_Com->m_nParity = EVENPARITY;
		m_Com->OpenPort();	
}

5.发送数据
void CTest8View::Onsend() 
{
	// TODO: Add your command handler code here
	if (!m_Com->PortOpened())
	{
		AfxMessageBox("通讯串口没有打开!");
		return;
	}
	BYTE yxdata[1024];
	BYTE* ucharYxData = yxdata;	
	yxdata[0]='h';
	yxdata[1]='e';
	int YxFrameNum=2;
	//YxFrameNum= ReadFrame(ucharYxData,yxdata);	//请求读
	m_Com->Send(ucharYxData, YxFrameNum);
}

6.接受数据,在view的windowproc函数里面接收串口消息
LRESULT CTest8View::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	if(message == WM_COM)
	{
		if(wParam != COM_THRESHOLD)
		{
			if(wParam == 5)
			{
				int m_xx=0;
				m_xx++;
			}
			return 0;
		}	
		CString m_szReceiveView;
		bool m_bRvSucced;
		BYTE buff[1024];
		DWORD dwReaded;
		m_bRvSucced = m_Com->Receive(buff, 1024, dwReaded);//接收数据的长度dwReaded
		TRACE("dwReaded:%d",dwReaded);
		m_Com->SetThreshold(1);
		return true;
	} 

	return CView::WindowProc(message, wParam, lParam);
}

http://download.csdn.net/detail/luck_good/3993210




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值