MFC基本操作及串口控制

这篇博客介绍了MFC中的控件操作,包括编辑框、Button按钮和Combo Box的基本使用。接着讲解了MFC消息映射,如何关联控件事件与消息。然后详细探讨了窗口的弹出对话框、控件样式设置和文件对话框的使用。最后,文章深入讨论了串口操作,包括打开串口、相关函数的使用,以及读写串口的异步和同步方法。
摘要由CSDN通过智能技术生成

控件

编辑框

编辑框可以输入输出字符串,可以编辑获取用户输入等等。

编辑框的变量

变量的创建

第一种方法:
  在控件浏览页面中,选中编辑框控件,右键添加变量
控件中编辑框变量的添加
控件中编辑框变量的添加
第二种方法:

CEdit File_Edit_Ctl;//创建一个编辑框控件变量
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_Edit_File, File_Edit_Ctl);//将该控件与编辑框ID进行绑定即可
变量的使用

变量一共有两类,一类是控件,一类是值,控件类型变量的使用后续介绍。
值类型的变量
  即一个CString变量,更改该变量的内容再使用下列函数即可更新和获取编辑框内容。

CString File_Edit_Cs;//文件显示编辑框文本内容
File_Edit_Cs=CString("File_Edit_Cs");//需要显示的内容
UpdateData(FALSE);//更新编辑框内容
UpdateData(TRUE);//获取编辑框内容

控件类型变量
  控件类型变量可以对该控件进行操作,它可以看作为是该控件的一个对象.如:

Out_Edit_Ctl.SetWindowTextW(Out_Edit_Cs);//在编辑窗口中输出字符串
Out_Edit_Ctl.SetSel(-1);//光标移动至最后一行

在不使用控件变量的情况下也可以对控件的操作

HWND TEXT_Edit = ::GetDlgItem(this->m_hWnd, IDC_Edit_Out);//通过控件ID获取该控件的句柄
::SetWindowText(TEXT_Edit, TEXT("串口打开成功"));//通过该句柄对控件进行操控

Button按钮控件

基本操作

Test_Button.SetWindowText(TEXT("结束测试"));//修改按钮显示文本
GetDlgItem(IDC_Serial)->SetWindowText(TEXT("打开串口"));//使用控件ID修改按钮Caption

Combo Box控件

基本操作

Serial_Stop_Bit_Ctl.AddString(TEXT("1"));//新增选项
Serial_Stop_Bit_Ctl.SetCurSel(0);//设置选中位置
Serial_Stop_Bit_Ctl.GetCurSel();//获取选中行
Serial_Port_DCB.GetLBText(Serial_Port_DCB.GetCurSel(),//获取选中行的字符串
								Serial_DCB_Set_Value);//存储位置
(DWORD)(_ttoi(Serial_DCB_Set_Value)//字符串转10进制
								

MFC消息映射

控件事件与消息的关联

DECLARE_MESSAGE_MAP()//在声明事件响应函数的类中必须使用该宏定义
afx_msg void OnBnClickedButton3();//声音事件响应函数,必须使用fax_msg前缀声明
BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)//规定格式,开始消息绑定
ON_BN_CLICKED(IDC_Serial, 
				&CMFCApplication1Dlg::OnBnClickedButton3)//根据控件ID绑定单击事件响应函数
END_MESSAGE_MAP()//结束绑定

当每次单击一下按钮时,就会自动调用OnBnClickedButton3函数.ON_BN_CLICKED表示单击事件

窗口

弹出消息对话框

::MessageBox(NULL, TEXT("串口已打开"), TEXT("提示消息"), MB_OK | MB_ACTIVE);
//弹出消息提示对话框,前一个字符串为具体内容,后一个为窗口标题,最后一个参数设置对话框样式

控件样式设置

第一种方法:
  在资源视图中拖动控件,修改其大小位置属性等.
第二种方法:
  通过代码的方式进行修改
在这里插入图片描述在这里插入图片描述
通过该文件,可以设置控件或者窗口的具体大小及具体位置,显示的内容,控件样式等等.

打开文件及其对话框

	TCHAR szFilters[] = 
				_T("AT_Command (*.BR)|*.BR|AT_Command (*.txt)|*.txt|All Files (*.*)|*.*||");
	//文件筛选格式
	/*字符串对中的第一个字符串描述筛选器; 第二个字符串指示要使用的文件名扩展名。
	可以使用分号(';'字符)作为分隔符来指定多个扩展。 字符串以两个"|"字符结束,后跟 NULL 字符。*/
	/*设置打开文件对话框模板*/
	CFileDialog SourceFile(TRUE, _T(".BR"), _T("AT_Cmd.BR"),
							OFN_FILEMUSTEXIST| OFN_HIDEREADONLY| OFN_NOCHANGEDIR,
							szFilters,this,0,TRUE);//设置对话框样式
	if (IDOK==SourceFile.DoModal()){
   
	//打开对话框.并且用户单击了确定
	SourceFile.GetFileName();//获取文件名+后缀
	SourceFile.GetFolderPath();//获取文件路径
	CFile *AT_File = new CFile;
	AT_File->Open(AT_Cmd_File_PathName,//打开文件
				CFile::modeRead| CFile::typeBinary | CFile::shareDenyNone,//仅仅可读,二进制读
				&File_Error);
	File_Lenght = AT_File->GetLength();//获取文件长度
	AT_File->Read(File_Buff, (UINT)File_Lenght);//读取File_Lenght长度的文件

CFileDialg函数说明(转)
CFileDialg类
  CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能,该类的派生层次如下:
  从上图中,可以看出这个类也是对话框的类,显示对话框可以使用DoModal函数来完成;
要使用CFileDialog,需要先用CFileDialog构造函数构造一个对象,其构造函数如下:

CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL
);
参数:
bOpenFileDialg
  如果为TRUE, 则创

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值