mfc简单问题
在头文件中已经定义了这个函数UINTThreadFunc(LPVOIDlpParam);BOOLCTexttextDlg::OnInitDialog(){CDialog:...
在头文件中已经定义了这个函数UINT ThreadFunc(LPVOID lpParam);
BOOL CTexttextDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_ctrlprocess.SetRange(0,99);
m_second=10;
UpdateData(false);
UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
抱错是此行有一个“{”没有匹配项
error C2601: “ThreadFunc”: 本地函数定义是非法的
这两个错可我感觉没错啊 展开
BOOL CTexttextDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_ctrlprocess.SetRange(0,99);
m_second=10;
UpdateData(false);
UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
抱错是此行有一个“{”没有匹配项
error C2601: “ThreadFunc”: 本地函数定义是非法的
这两个错可我感觉没错啊 展开
展开全部
这个我感觉确实像有点问题,你虽然在头文件里定义了UINT ThreadFunc(LPVOID lpParam);
,但是你方法的实现却是在BOOL CTexttextDlg::OnInitDialog()方法中,这应该不正确。
尝试这样改一下:
在CTexttextDlg的头文件里定义方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam);
然后在CTexttextDlg的源文件里实现方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
然后在你需要的地方调用就可以了。
,但是你方法的实现却是在BOOL CTexttextDlg::OnInitDialog()方法中,这应该不正确。
尝试这样改一下:
在CTexttextDlg的头文件里定义方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam);
然后在CTexttextDlg的源文件里实现方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
然后在你需要的地方调用就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数可以嵌套定义吗?就算可以也最好不要这样做。
那个“{”没有匹配也不一定就是这个代码段的问题,可能是其他函数体中的某个“{”没有匹配
那个“{”没有匹配也不一定就是这个代码段的问题,可能是其他函数体中的某个“{”没有匹配
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-05-25
展开全部
把
UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
放到外边去
UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
放到外边去
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询