实习程序总结

2021/12/25 20:08:37

本文主要是介绍实习程序总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MFC网络调试助手

功能模块:

1. 实现UDP、TCP通信
	继承MFC自带的CAsyncSocket类,并重写虚函数OnReceive()实现非阻塞接收数据
	AfxSocketinit();//初始化套接字
	1、UDP:
			CAsycSocket::Create(nPort,SOCK_DGRAM,63L,pszIP);//创建Socket
			CAsycSocket::SendTo(pszBuffer,nBufferSize,Port,pszIP);//往指定地址发送数据		
			CAsycSocket::Receive(pszBuffer,nBufferSize);//放于OnReceive()中实现非阻塞接收数据		
	2、 TCP
						TCP Client 											         TCP Server
			//随机分配端口									                //创建监听套接字
			CAsycSocket::Create();							             CAsycSocket::Create(nPort,SOCK_STREAM,63L,pszIP);
			//发送连接请求									                 //监听请求的连接,当有连接请求时触发OnAccept()函数 
			CAsycSocket::Connect(pszIP,nPort);				     CAsycSocket::Listen(nCount);
			//往服务器发送数据								                //放于OnAccept中实现非阻塞获取监听Socket	
			CAsycSocket::Send(pszBuffer,nBufferSize);		CAsycSocket::Accept(CAsyncSocket);
									         //放于OnReceive()中实现非阻塞接收数据
									       CAsycSocket::Receive(pszBuffer,nBufferSize);	
注:可利用IP Address Control控件的GetAddress(wIp);获取用户输入IP,然后将DWORD类型的IP转为CString。
//DWORD转CString 
2. 实现文件数据传输
	结合CFile类和CFileDialog类实现文件的读写创建操作
	1、创建并弹出文件选择框,供用户选择文件路径以及创建文件
		//TRUE表示创建打开文件类型对话框,FALSE表示创建保存类型文件对话框
		new CFileDialog(BOOL); 
		CFileDialog::DoModal();//创建并显示模态对话框
		CFileDialog::GetPathName();//获取文件完整路径
		CFileDialog::lpstrDefExt=pszDefExt;//设置文件默认扩展名
		CFileDialog::lpstrFilter=pszFilter;//设置文件对话框过滤器
	2、创建文件类进行读写文件操作
		//实例化CFile类,在该路径下创建和打开文件
		new CFile(pszPath,CFile::modeCreate|CFile::modeNoTruncate);
		CFile::Read(pszBuffer,nBufferSize);//读取文件中的所有数据
		CFIle::Write(pszBuffer,nBufferSize);//往文件中写入数据
		CFile::Close();
3. 进行十六进制转换、发送附加位和显示时间
    1、数据添加附加位
		创建MFC子窗口类CAddCheck
		在主窗口类上实例化此类并调用CDialog::DoModal()方法来创建模态对话框
	2、添加显示时间
		使用CTime time_t=CTime::GetCurrentTime();来获取当前时间
		将获取到的时间进行格式化CString strTime.Format(_T("%Y-%m-%d %H-%M-%S--%A:"));
4. 数据定时发送
	利用定时器功能实现数据的定时发送
	1、添加OnTimer(nIDEvent)事件
		对话框属性(Properties)⇒⇒属性页右侧Messages页⇒⇒WM_TIMER⇒⇒<Add> OnTimer
	2、触发和关闭OnTimer(nIDEvent)事件
		SetTimer(nIDEvent,nCircleTime,NULL);//触发OnTimer事件
		KillTimer(nIDEvent);//关闭OnTimer()事件
5. 菜单栏、状态栏的调用和创建
	1、菜单栏的创建
		Project ⇒ Add Resource ⇒ Menu 点击新建即创建了菜单资源,并在对话框的Menu属性中添加此菜单资源。
		编辑菜单项,点击弹出子菜单则将菜单项中的Popup属性设为TRUE,点击触发事件则关闭Popup属性。
		对于点击触发事件的菜单项,右击选中Add Event Handle然后选择在包含此菜单项的对话框类中添加事件即可。
	2、状态栏的创建
		CStatusBar::Create(this);//在该对话框类中创建一个状态栏资源
		this->getClientRect(CRect);//获取该对话框的矩形框大小
		CStatusBar::SetIndicators(pnID,nCount);//设定状态栏中包含的ID资源
		CStatusBar::SetPaneInfo(nIndex,nID,SBPS_NORMAL,nWidth);//在状态栏中添加元素
		CStatusBar::RepositionBars(nIDFirst,nIDLast,nIDLeftOver);

MFC串口调试助手

1、准备工作
	下载MSCOMM.OCX,将其放入 32位操作系统{路径1:Windows/System32},64位操作系统{路径2:Windows/sysWOW64}.
	打开CMD键入 regsvr32c	 //文件所在路径即注册完成
	右击对话框⇒⇒Insert ActiveX Control⇒⇒Microsoft Communication Control,Version 6⇒OK
	调出该控件属性页选择Control Events添加OnComm事件;
	添加控件绑定变量m_MScomm;
2、串口通信
	找出可用串口:
				for(int nCom=1;nCom<=16;nCom++)
				{
					try
					{
							m_Mscomm.Put_CommPort(nCom);
							m_Mscomm.PortOpen(TRUE);
							nList[i++]=nCom;//若端口成功则运行此语句保存可用端口,否则进入Catch语句
							m_Mscomm.PortOpen(FALSE);
					}
					Catch
					{}
				}
	设置串口属性:
				m_Mscomm.put_CommPort(nCom);
				m_Mscomm.put_InputMode(1);//二进制形式传输
				m_Mscomm.put_InBufferSize(1024);//设置缓冲区
				m_Mscomm.put_OutBufferSize(1024);
				m_Mscomm.put_Settings(_T("9600,n,8,1"));//设置串口属性
				m_Mscomm.put_RThreshold(1);//缓冲区存在一个字符则出发OnComm事件
				m_Mscomm.put_PortOpen(TRUE);
				m_Mscomm.RTSEnable(FALSE);//RTS位使能信号关闭
				m_Mscomm.DTREnable(FALSE);//DRT位使能信号关闭
	发送和接收数据:
				接收数据:当接收缓冲区存在字符串时会触发OnComm()事件,
2. 子窗口嵌入父窗口中并在父窗口响应子窗口事件
	1、子窗口嵌入父窗口
		在父窗口中调入Tab Control控件并绑定变量m_TabCtrl、实例化子窗口类m_WndEx;
		调用m_WndEx.Create(nID,&m_tabCtrl);即可在Tab控件中显示子窗口//nID为子窗口ID
	2、父窗口响应子窗口事件
		::PostMessage();


这篇关于实习程序总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程