目前位置: VCer资源中心 >>> VCer知道

[本帖已阅读1093次 分值0 回复0次] 张贴资源 发回信箱 控制面板

问一个关于多线程的问题,拜托看一下

提供者:lucy 张贴时间:2007-03-09 14:17:35.0 出处:newsmth.net 作者:不祥

问一个关于多线程的问题,拜托看一下(2007-03-09 14:17:35.0)


lucy


 
级别: VCer小兵
头衔: VCer会员

经验: 10
作品: 92
分会: 华北分会
注册: 2007-03-09 10:35:00.0
登录: 2007-05-31 14:40:23.0

标  题: [合集] 问一个关于多线程的问题,拜托看一下

发信站: 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                 

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1173421055296.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]
[投票结果]

A: 评分 10 0% (0 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)