标题:MFC 多线程问题
取消只看楼主
limj1987
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-2-17
结帖率:0
已结贴  问题点数:20 回复次数:0 
MFC 多线程问题
我用VS2005创建了一个对话框应用程序,对话框上放了两个按钮(IDC_BUTTON_START和IDC_BUTTON_STOP)和一个编辑框(IDC_EDIT_TIME)。目的是点击开始按钮后,开启一个线程,在线程函数中,将当前时间显示在编辑框内,但在编译过程中VS2005总提示编译出错:error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”,这个错误就是在CreateThread函数这块,不清楚是为什么,请各位大神帮忙看看
头文件定义:
// CMultiThreadDlg 对话框
class CMultiThreadDlg : public CDialog
{
// 构造
public:
    CMultiThreadDlg(CWnd* pParent = NULL);    // 标准构造函数
   
    void ThreadFunc();
    volatile bool m_bRun;//表征线程是否正在运行
    HANDLE hThread;//线程句柄
    DWORD ThreadID;//线程ID

// 对话框数据
    enum { IDD = IDD_MULTITHREAD_DIALOG };

    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:
    afx_msg void OnBnClickedButtonStart();
public:
    afx_msg void OnBnClickedButtonStop();
};

源文件:
void CMultiThreadDlg::OnBnClickedButtonStart()
{
    // TODO: 在此添加控件通知处理程序代码
    hThread=CreateThread(NULL,
        0,
        (LPTHREAD_START_ROUTINE)ThreadFunc,
        NULL,
        0,
        &ThreadID);
    GetDlgItem(IDC_BUTTON_START)->EnableWindow(FALSE);
    GetDlgItem(IDC_BUTTON_STOP)->EnableWindow(TRUE);


}

void CMultiThreadDlg::OnBnClickedButtonStop()
{
    // TODO: 在此添加控件通知处理程序代码
    m_bRun=FALSE;
    GetDlgItem(IDC_BUTTON_START)->EnableWindow(TRUE);
    GetDlgItem(IDC_BUTTON_STOP)->EnableWindow(FALSE);
}

void CMultiThreadDlg::ThreadFunc()
{
    CTime time;
    CString strTime;
    m_bRun=TRUE;
    while(m_bRun)
    {
        time=CTime::GetCurrentTime();
        strTime=time.Format("%H:%M:%S");
        ::SetDlgItemText(AfxGetMainWnd()->m_hWnd,IDC_EDIT_TIME,strTime);
        Sleep(1000);
    }
}
搜索更多相关主题的帖子: 应用程序 public 多线程 对话框 
2014-02-26 07:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-427677-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059298 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved