📄 modemdlg.h
字号:
// Modem.h : header file
//
#if !defined(AFX_MODEMDLG_H__D34EDBC7_E3A7_4EA7_8034_CE265D1BE798__INCLUDED_)
#define AFX_MODEMDLG_H__D34EDBC7_E3A7_4EA7_8034_CE265D1BE798__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CModemDlg dialog
//定义最大数据块、XON和XOFF
#define MAXBLOCK 4096
#define XON 0x11
#define XOFF 0x13
UINT CommProc(LPVOID pParam);
class CModemDlg : public CDialog
{
// Construction
public:
CModemDlg(CWnd* pParent = NULL); // standard constructor
BOOL ConfigConnection();//配置连接
DWORD ReadComm(char *buf,DWORD dwLength);//读串口
DWORD WriteComm(char *buf,DWORD dwLength);//写串口
HWND ghWnd; // 对话框窗口句柄
CWinThread* m_pThread; // 代表辅助线程
volatile BOOL m_bPortOpened; // 表示连接否,用来标识菜单串口连接和断开连接是否可用
volatile BOOL m_bOnLine; // 表示MODEM是否在线
volatile HANDLE m_hPostMsgEvent; // 用于WM_COMMNOTIFY消息的事件对象
OVERLAPPED m_osRead, m_osWrite; // 用于异步读/写
char buf[MAXBLOCK/4]; // 读写串口缓存
int nStrLen; // 记录字符串长度
BOOL m_bNewLine; // 表明自动换行
BOOL m_bSetTimer; // 是否已设置定时器标志,当已建立连接的两个Modem之间
// 在定时器指定间隔时间内没有数据传输超过,将自动挂断连接
// 串口设置
volatile HANDLE m_hCom; // 串行口句柄
int m_nBaud; // 数据传输速率
int m_nDataBits; // 数据位
int m_nParity; // 校验位
CString m_strPort[2]; // 串行端口
int m_nStopBits; // 停止位
// Dialog Data
//{{AFX_DATA(CModemDlg)
enum { IDD = IDD_MODEM_DIALOG };
CEdit m_editReceive;
CEdit m_editPhoneNum;
CButton m_btnCancel;
CEdit m_editSend;
CButton m_btnSend;
CButton m_btnOpenPort;
CButton m_btnDial;
CButton m_btnClosePort;
CComboBox m_combStopBits;
CComboBox m_combPort;
CComboBox m_combParity;
CComboBox m_combDataBits;
CComboBox m_combBaud;
CString m_strPhoneNum;
CString m_strSend;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CModemDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CModemDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnCancel();
afx_msg BOOL OnBtnOpenPort();
afx_msg void OnBtnClosePort();
afx_msg void OnBtnDial();
afx_msg void OnBtnSend();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnCommNotify(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MODEMDLG_H__D34EDBC7_E3A7_4EA7_8034_CE265D1BE798__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -