在MultiThread5Dlg.h文件中添加一个结构的定义:struct threadInfo
{
UINT nMilliSecond;
CProgressCtrl* pctrlProgress;
};线程函数的声明:
UINT ThreadFunc(LPVOID lpParam);注意,二者应在类CMultiThread5Dlg的外部。 在类CMultiThread5Dlg内部添加protected型变量:
CWinThread* pThread;在MultiThread5Dlg.cpp文件中进行如下操作:定义公共变量:
threadInfo Info;
//双击按钮IDC_START,添加相应消息处理函数:void CMultiThread5Dlg::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
Info.nMilliSecond=m_nMilliSecond;
Info.pctrlProgress=&m_ctrlProgress;
pThread=AfxBeginThread(ThreadFunc,
&Info);
}
//在函数BOOL CMultiThread3Dlg::OnInitDialog()中添加语句:
{
……
// TODO: Add extra initialization here
m_ctrlProgress.SetRange(0,99);
m_nMilliSecond=10;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
//添加线程处理函数:
UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(i);
Sleep(nTemp);
}
return 0;
}请问定义公共变量是不是在class CAboutDlg : public CDialog
{
public:
threadInfo Info;//添加
但是运行后报错~请问为什么?
{
UINT nMilliSecond;
CProgressCtrl* pctrlProgress;
};线程函数的声明:
UINT ThreadFunc(LPVOID lpParam);注意,二者应在类CMultiThread5Dlg的外部。 在类CMultiThread5Dlg内部添加protected型变量:
CWinThread* pThread;在MultiThread5Dlg.cpp文件中进行如下操作:定义公共变量:
threadInfo Info;
//双击按钮IDC_START,添加相应消息处理函数:void CMultiThread5Dlg::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
Info.nMilliSecond=m_nMilliSecond;
Info.pctrlProgress=&m_ctrlProgress;
pThread=AfxBeginThread(ThreadFunc,
&Info);
}
//在函数BOOL CMultiThread3Dlg::OnInitDialog()中添加语句:
{
……
// TODO: Add extra initialization here
m_ctrlProgress.SetRange(0,99);
m_nMilliSecond=10;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
//添加线程处理函数:
UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(i);
Sleep(nTemp);
}
return 0;
}请问定义公共变量是不是在class CAboutDlg : public CDialog
{
public:
threadInfo Info;//添加
但是运行后报错~请问为什么?
解决方案 »
- VC6编译出来的程序能不能动态更改自己的主题?比如XP的主题?
- win32 console程序中打印进度字符的问题
- 奇怪!
- 这是我按书上编写的window程序,有几个错误,请指教?
- 如果谁能帮我解决问题,我答应给1000分或者500块钱,绝不食言,关于media play控件播放网络歌曲问题!!
- vcsp6比vcsp5还小,是不是要先装sp5再装sp6?
- 用ATL开发一个COM怎么做?
- Access 如何按字段整形值的某一位进行查询
- 大侠救急, vc编译好的程序不能运行,问题不能解决。急急急!!
- 有关内存释放失败的问题。在exe中不能释放由dll申请的内存。高手请解答!
- 程序调试出问题,只提示出现异常
- EN_KILLFOCUS 与 TabStop有什么关联?
{
public:
threadInfo Info;//添加
但是运行后报错~请问为什么?
=========
这个不是公共变量,而是类的成员变量,全局公共变量一般定义在CPP文件中,只要写在函数的外面就行了.
threadInfo Info;//添加 这哪是什么公共变量,这是类成员(都可访问)变量。不知道你说的公共变量是指全局变量还是,类的static变量(这是类或者成为族的共享变量)。
全局变量:就是在在cpp文件的前面定义。
如
//-----类.cpp文件
type g_var;要是static变量就是在类里面声明,但是必须在cpp文件里面初始化(即给出内存);
如:
//类.h----文件
class 类
{
static type share_static;
.....
};
//---------类.cpp文件
type share_static=值;