vc常用函数

1、CWindApp * AfxGetApp()

     返回值:返回指向应用程序的单一的CWinApp对象的指针

     应用:AfxGetApp( )这个函数可以得到当前应用进程的 指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。
                AfxGetApp()这个函数在VC当中很常见,主要是用来获得CWinAPP生成的全局对象的。一般情况下将其 强制类型转换成你自己写的App类就可以调用里面的方法了
     例子:在 全局函数中要向对话框中的列表写数据。
                void writeString(char* pString)
                {
                CWnd* pWnd = AfxGetApp()->GetMainWnd();
                CMyDlg * pDlg;
                pDlg=(CMyDlg *) pWnd;
                pDlg->ShowMsg(pString);
                }

     注:CWinApp类:应用程序类     

MFC 中的主应用程序类封装用于 Windows 操作系统的应用程序的初始化、运行和终止。基于 框架生成的应用程序必须有且仅有一个从 CWinApp 派生的类的对象。在创建窗口之前先构造该对象。
CWinApp 是从 CWinThread 派生的,后者表示可能具有一个或多个线程的应用程序的主执行线程。在最新版本的 MFC 中,InitInstance、Run、ExitInstance 和 OnIdle 成员函数实际位于 CWinThread 类中。此处将这些函数作为 CWinApp 成员来探讨,因为探讨所关心的是对象作为应用程序对象而不是 主线程的角色。
             
基于MFC的应用程序有一个 应用对象,它是CWinApp派生类的对象,该对象代表了应用进程的 主线程。当线程执行完并退出线程时,由于进程中没有其他线程存在,进程自动结束。类CWinApp从CWinThread派生出来,CWinThread是 用户接口线程的基本类。我们在编写用户接口线程时,需要从CWinThread派生我们自己的线程类,ClassWizard可以帮助我们完成这个工作。
先用ClassWizard派生一个新的类,设置 基类为CwinThread。注意:类的DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏是必需的,因为创建线程时需要动态创建类的对象。根据需要可将初始化和结束代码分别放在类的InitInstance和ExitInstance函数中。如果需要创建窗口,则可在InitInstance函数中完成。然后创建线程并启动线程。可以用两种方法来创建 用户接口线程,MFC提供了两个版本的AfxBeginThread函数,其中一个用于创建用户接口线程。第二种方法分为两步进行:首先,调用线程类的 构造函数创建一个线程对象;其次,调用CWinThread::CreateThread函数来创建该线程。线程建立并启动后,在线程函数执行过程中一直有效。如果是线程对象,则在对象删除之前,先结束线程。CWinThread已经为我们完成了线程结束的工作。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值