头文件:
// MFCStringReverseDlg.h: 头文件
//
#pragma once
// CMFCStringReverseDlg 对话框
class CMFCStringReverseDlg : public CDialogEx
{
// 构造
public:
CMFCStringReverseDlg(CWnd* pParent = nullptr); // 标准构造函数
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum {
IDD = IDD_MFCSTRINGREVERSE_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CEdit m_FilePath;
afx_msg void OnBnClickedSelectFileButton1();
afx_msg void OnBnClickedReverseButton2();
afx_msg void OnBnClickedCloseButton3();
public:
CFile hFile;
CString FileName;
HANDLE m_hEvent[2];
HANDLE m_hThread[2];
PCHAR buffer;
ULONGLONG m_fileSize;
BOOL threadRet1;
BOOL threadRet2;
static UINT WINAPI ListenThread1(VOID* arglist);
static UINT WINAPI ListenThread2(VOID* arglist);
};
cpp源文件:
BOOL CMFCStringReverseDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != nullptr)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.