标 题: [合集] 问一个关于多线程的问题,拜托看一下
发信站: BBS 水木清华站 (Sat May 22 23:52:59 2004), 站内
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 17:41:42 2004) 提到:
我在View里面声明了一个全局的线程函数,启动线程是在ChildFrame里面,我想让线程
函数在view里面画图
线程函数是这样的
UINT LeftProc(LPVOID pParam)
{
CDC* pDC=GetDC();
//显示目标
HICON hIcon ;
hIcon=AfxGetApp()->LoadIcon(IDI_OBJ);
int x=0;
CPCIView* pView=0;
for(x=50;x<=500;x+=50)
{
pDC->DrawIcon(x,x,hIcon);
Sleep(500);
Invalidate(FALSE);
UpdateWindow();
}
ReleaseDC(pDC);
return 0;
}
提示错误G:\RTerminal\PCIView.cpp(75) : error C2660: ’GetDC’ : function does
not take 0 parameters
G:\RTerminal\PCIView.cpp(89) : error C2065: ’Invalidate’ : undeclared identi
fier
G:\RTerminal\PCIView.cpp(91) : error C2660: ’UpdateWindow’ : function does n
ot take 0 parameters
G:\RTerminal\PCIView.cpp(95) : error C2660: ’ReleaseDC’ : function does not
take 1 parameters
启动线程是 AfxBeginThread(LeftProc,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
☆─────────────────────────────────────☆
azhuazhu (找一个爱我的人) 于 (Fri May 21 18:14:03 2004) 提到:
那么改成全局函数得了。
【 在 dogofmay (修身、齐家、治国、平天下) 的大作中提到: 】
: 我在View里面声明了一个全局的线程函数,启动线程是在ChildFrame里面,我想让线程
: 函数在view里面画图
: 线程函数是这样的
: ...................
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 18:41:54 2004) 提到:
我的线程函数就是全局的呀
【 在 azhuazhu (找一个爱我的人) 的大作中提到: 】
: 那么改成全局函数得了。
☆─────────────────────────────────────☆
azhuazhu (找一个爱我的人) 于 (Fri May 21 18:53:41 2004) 提到:
但是你得函数不适全局的阿。如
CDC *pDC=::GetDC(hWnd),
由参数的
【 在 dogofmay (修身、齐家、治国、平天下) 的大作中提到: 】
: 我的线程函数就是全局的呀
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 19:06:02 2004) 提到:
hWnd怎么得到呢?? 偶是菜鸟哈
【 在 azhuazhu (找一个爱我的人) 的大作中提到: 】
: 但是你得函数不适全局的阿。如
: CDC *pDC=::GetDC(hWnd),
: 由参数的
: ...................
☆─────────────────────────────────────☆
azhuazhu (找一个爱我的人) 于 (Fri May 21 19:10:22 2004) 提到:
偶也是菜鸟,dan 你比我利害多了。看多线程了。
试一下(this->hWnd),欧这里什么都没有,猜了这么一个参数
你看看。
【 在 dogofmay (修身、齐家、治国、平天下) 的大作中提到: 】
: hWnd怎么得到呢?? 偶是菜鸟哈
☆─────────────────────────────────────☆
ADAMpots (保持圈内卫生猪猪有责) 于 (Fri May 21 20:00:46 2004) 提到:
……
显然不行
那里来的this?
【 在 azhuazhu (找一个爱我的人) 的大作中提到: 】
: 偶也是菜鸟,dan 你比我利害多了。看多线程了。
: 试一下(this->hWnd),欧这里什么都没有,猜了这么一个参数
: 你看看。
: ...................
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 20:02:16 2004) 提到:
那应该怎么办呢??
【 在 ADAMpots (保持圈内卫生猪猪有责) 的大作中提到: 】
: ……
: 显然不行
: 那里来的this?
: ...................
☆─────────────────────────────────────☆
ADAMpots (保持圈内卫生猪猪有责) 于 (Fri May 21 20:02:53 2004) 提到:
获得窗口的hWnd很麻烦,还不如把那个现成函数改成static成员函数
【 在 azhuazhu (找一个爱我的人) 的大作中提到: 】
: 偶也是菜鸟,dan 你比我利害多了。看多线程了。
: 试一下(this->hWnd),欧这里什么都没有,猜了这么一个参数
: 你看看。
: ...................
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 20:06:33 2004) 提到:
我试过哈 错误说GetDC等函数 不是static
【 在 ADAMpots (保持圈内卫生猪猪有责) 的大作中提到: 】
: 获得窗口的hWnd很麻烦,还不如把那个现成函数改成static成员函数
☆─────────────────────────────────────☆
ADAMpots (保持圈内卫生猪猪有责) 于 (Fri May 21 20:08:55 2004) 提到:
【 在 dogofmay (修身、齐家、治国、平天下) 的大作中提到: 】
: 标 题: 问一个关于多线程的问题,拜托看一下
: 发信站: BBS 水木清华站 (Fri May 21 17:41:42 2004), 站内
:
: 我在View里面声明了一个全局的线程函数,启动线程是在ChildFrame里面,我想让线程
: 函数在view里面画图
: 线程函数是这样的
: UINT LeftProc(LPVOID pParam)
~~~~~~~~~~~~~~~~~~~`~~~~~~这个函数改成成员
: {
: CDC* pDC=GetDC();
:
: //显示目标
: HICON hIcon ;
: hIcon=AfxGetApp()->LoadIcon(IDI_OBJ);
: int x=0;
: CPCIView* pView=0;
: for(x=50;x<=500;x+=50)
: {
:
: pDC->DrawIcon(x,x,hIcon);
: Sleep(500);
:
: Invalidate(FALSE);
:
: UpdateWindow();
: }
: ReleaseDC(pDC);
: return 0;
: }
: 提示错误G:\RTerminal\PCIView.cpp(75) : error C2660: ’GetDC’ : function does
: not take 0 parameters
: G:\RTerminal\PCIView.cpp(89) : error C2065: ’Invalidate’ : undeclared identi
: fier
: G:\RTerminal\PCIView.cpp(91) : error C2660: ’UpdateWindow’ : function does n
: ot take 0 parameters
: G:\RTerminal\PCIView.cpp(95) : error C2660: ’ReleaseDC’ : function does not
: take 1 parameters
: 启动线程是 AfxBeginThread(LeftProc,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
:
: --
:
: ※ 来源:?BBS 水木清华站 smth.org?[FROM: 218.194.36.253]
☆─────────────────────────────────────☆
dogofmay (修身、齐家、治国、平天下) 于 (Fri May 21 20:12:09 2004) 提到:
你是说改成CXXXView的成员吧?我就是这样改的呀
就出现了刚才我说的错误 GetDC不是static
【 在 ADAMpots (保持圈内卫生猪猪有责) 的大作中提到: 】
: ~~~~~~~~~~~~~~~~~~~`~~~~~~这个函数改成成员
ADAMpots (保持圈内卫生猪猪有责) 于 (Fri May 21 20:19:21 2004) 提到:
呵呵手头没有vc无法测试……郁闷哈
回去我看看,现在委屈你暂时用全局的那个getdc吧
精华区里有关于获得hwnd的说明
【 在 dogofmay (修身、齐家、治国、平天下) 的大作中提到: 】
: 你是说改成CXXXView的成员吧?我就是这样改的呀
: 就出现了刚才我说的错误 GetDC不是static