Aracılığıyla paylaş


CCmdTarget Sınıf

Microsoft Foundation Sınıf Kitaplığı ileti eşleme mimarisi için temel sınıf.

Sözdizimi

class CCmdTarget : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CCmdTarget::CCmdTarget Bir CCmdTarget nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CCmdTarget::BeginWaitCursor İmleci kum saati imleci olarak görüntüler.
CCmdTarget::DoOleVerb OLE fiili tarafından belirtilen bir eylemin gerçekleştirilmesine neden olur.
CCmdTarget::EnableAutomation Nesne için OLE otomasyonuna CCmdTarget izin verir.
CCmdTarget::EnableConnections Bağlantı noktaları üzerinden olay tetiklemesini etkinleştirir.
CCmdTarget::EnableTypeLib Nesnenin tür kitaplığını etkinleştirir.
CCmdTarget::EndWaitCursor Önceki imleç döndürür.
CCmdTarget::EnumOleVerbs Nesnenin OLE fiillerini numaralandırır.
CCmdTarget::FromIDispatch İşaretçiyle ilişkilendirilmiş nesneye CCmdTarget IDispatch bir işaretçi döndürür.
CCmdTarget::GetDispatchIID Birincil dağıtım arabirimi kimliğini alır.
CCmdTarget::GetIDispatch Nesneyle ilişkilendirilmiş nesneye IDispatch CCmdTarget bir işaretçi döndürür.
CCmdTarget::GetTypeInfoCount Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır.
CCmdTarget::GetTypeInfoOfGuid Belirtilen GUID'ye karşılık gelen tür açıklamasını alır.
CCmdTarget::GetTypeLib Tür kitaplığına bir işaretçi alır.
CCmdTarget::GetTypeLibCache Tür kitaplığı önbelleğini alır.
CCmdTarget::IsInvokeAllowed Otomasyon yöntemi çağırmayı etkinleştirir.
CCmdTarget::IsResultExpected Otomasyon işlevinin bir değer döndürmesi gerekiyorsa sıfır olmayan değerini döndürür.
CCmdTarget::OnCmdMsg Komut iletilerini yönlendirir ve yönlendirir.
CCmdTarget::OnFinalRelease Son OLE başvurusu yayımlandıktan sonra temizler.
CCmdTarget::RestoreWaitCursor Kum saati imlecini geri yükler.

Açıklamalar

İleti eşlemesi, komutları veya iletileri işlemek için yazdığınız üye işlevlerine yönlendirir. (Komut, menü öğesinden, komut düğmesinden veya hızlandırıcı tuşundan gelen bir iletidir.)

' den CCmdTarget türetilen anahtar çerçeve sınıfları : CView, CWinAppCDocument, , CWndve CFrameWnd. İletileri işlemek için yeni bir sınıf istiyorsanız, sınıfı bu CCmdTargettüretilmiş sınıflardan birinden türetin. Doğrudan öğesinden CCmdTarget nadiren bir sınıf türeteceksiniz.

Komut hedeflerine ve OnCmdMsg yönlendirmeye genel bakış için bkz . Komut Hedefleri, Komut Yönlendirme ve Eşleme İletileri.

CCmdTarget bir kum saati imlecinin görüntülenmesini işleyen üye işlevleri içerir. Bir komutun yürütülmesi için dikkat çekici bir zaman aralığı olmasını beklediğiniz zaman kum saati imlecini görüntüleyin.

İleti eşlemelerine benzer dağıtım eşlemeleri, OLE otomasyonu IDispatch işlevselliğini kullanıma açmak için kullanılır. Bu arabirimin açığa çıkartılmasıyla, diğer uygulamalar (Visual Basic gibi) uygulamanıza çağrı yapabilir.

Devralma Hiyerarşisi

CObject

CCmdTarget

Gereksinimler

Üstbilgi: afxwin.h

CCmdTarget::BeginWaitCursor

Bir komutun yürütülecek belirgin bir zaman aralığı almasını beklerken imleci kum saati olarak görüntülemek için bu işlevi çağırın.

void BeginWaitCursor();

Açıklamalar

Çerçeve, kullanıcıya nesnenin yüklenip kendisini bir dosyaya kaydetmesi gibi CDocument meşgul olduğunu göstermek için bu işlevi çağırır.

eylemleri BeginWaitCursor tek bir ileti işleyicisi dışında her zaman etkili değildir çünkü işleme gibi OnSetCursor diğer eylemler imleci değiştirebilir.

Önceki imleci geri yüklemek için çağrısı EndWaitCursor .

Örnek

// The following example illustrates the most common case
// of displaying the hourglass cursor during some lengthy
// processing of a command handler implemented in some
// CCmdTarget-derived class, such as a document or view.
void CMyView::OnBeginSleepEnd()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// The next example illustrates RestoreWaitCursor.
void CMyView::OnBeginDlgRestore()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   // The dialog box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the dialog box is
   // closed.
   CFileDialog dlg(TRUE);
   dlg.DoModal();

   // It is necessary to call RestoreWaitCursor here in order
   // to change the cursor back to the hourglass cursor.
   RestoreWaitCursor();
   // do some more lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// In the above example, the dialog was clearly invoked between
// the pair of calls to BeginWaitCursor and EndWaitCursor.
// Sometimes it may not be clear whether the dialog is invoked
// in between a pair of calls to BeginWaitCursor and EndWaitCursor.
// It is permissible to call RestoreWaitCursor, even if
// BeginWaitCursor was not previously called.  This case is
// illustrated below, where CMyView::AnotherFunction does not
// need to know whether it was called in the context of an
// hourglass cursor.
void CMyView::OnDlgRestore()
{
   // some processing ...
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   RestoreWaitCursor();

   // some more processing ...
}

// If the dialog is invoked from a member function of
// some non-CCmdTarget, then you can call CWinApp::DoWaitCursor
// with a 0 parameter value to restore the hourglass cursor.
void CMyObject::OnDlgDoWait()
{
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   AfxGetApp()->DoWaitCursor(0); // same as CCmdTarget::RestoreWaitCursor
}

CCmdTarget::CCmdTarget

Bir CCmdTarget nesne oluşturur.

CCmdTarget();

CCmdTarget::DoOleVerb

OLE fiili tarafından belirtilen bir eylemin gerçekleştirilmesine neden olur.

BOOL DoOleVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametreler

iVerb
Fiilin sayısal tanımlayıcısı.

lpMsg
MSG Fiili çağıran olayı (çift tıklama gibi) açıklayan yapı işaretçisi.

hWndParent
Nesneyi içeren belge penceresinin tanıtıcısı.

lpRect
içinde nesnenin RECT sınırlayıcı dikdörtgenini hWndParenttanımlayan piksel cinsinden koordinatları içeren yapıya yönelik işaretçi.

Dönüş Değeri

TRUE başarılı olursa, aksi takdirde FALSE.

Açıklamalar

Bu üye işlevi temelde uygulamasının bir uygulamasıdır IOleObject::DoVerb. Olası eylemler tarafından CCmdTarget::EnumOleVerbsnumaralandırılır.

CCmdTarget::EnableAutomation

Nesne için OLE otomasyonunu etkinleştirmek için bu işlevi çağır.

void EnableAutomation();

Açıklamalar

Bu işlev genellikle nesnenizin oluşturucusundan çağrılır ve yalnızca sınıf için bir dağıtım eşlemesi bildirilmişse çağrılmalıdır. Otomasyon hakkında daha fazla bilgi için Otomasyon İstemcileri ve Otomasyon Sunucuları makalelerine bakın.

CCmdTarget::EnableConnections

Bağlantı noktaları üzerinden olay tetiklemesini etkinleştirir.

void EnableConnections();

Açıklamalar

Bağlantı noktalarını etkinleştirmek için türetilmiş sınıfınızın oluşturucusunda bu üye işlevini çağırın.

CCmdTarget::EnableTypeLib

Nesnenin tür kitaplığını etkinleştirir.

void EnableTypeLib();

Açıklamalar

Tür bilgisi sağlıyorsa, türetilmiş nesnenizin CCmdTargetoluşturucusunda bu üye işlevini çağırın.

CCmdTarget::EndWaitCursor

Kum saati imlecinden önceki imleçlere dönmek için üye işlevini çağırdıktan sonra bu işlevi çağırın BeginWaitCursor .

void EndWaitCursor();

Açıklamalar

Çerçeve ayrıca kum saati imlecini çağırdıktan sonra bu üye işlevini çağırır.

Örnek

// The following example illustrates the most common case
// of displaying the hourglass cursor during some lengthy
// processing of a command handler implemented in some
// CCmdTarget-derived class, such as a document or view.
void CMyView::OnBeginSleepEnd()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// The next example illustrates RestoreWaitCursor.
void CMyView::OnBeginDlgRestore()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   // The dialog box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the dialog box is
   // closed.
   CFileDialog dlg(TRUE);
   dlg.DoModal();

   // It is necessary to call RestoreWaitCursor here in order
   // to change the cursor back to the hourglass cursor.
   RestoreWaitCursor();
   // do some more lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// In the above example, the dialog was clearly invoked between
// the pair of calls to BeginWaitCursor and EndWaitCursor.
// Sometimes it may not be clear whether the dialog is invoked
// in between a pair of calls to BeginWaitCursor and EndWaitCursor.
// It is permissible to call RestoreWaitCursor, even if
// BeginWaitCursor was not previously called.  This case is
// illustrated below, where CMyView::AnotherFunction does not
// need to know whether it was called in the context of an
// hourglass cursor.
void CMyView::OnDlgRestore()
{
   // some processing ...
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   RestoreWaitCursor();

   // some more processing ...
}

// If the dialog is invoked from a member function of
// some non-CCmdTarget, then you can call CWinApp::DoWaitCursor
// with a 0 parameter value to restore the hourglass cursor.
void CMyObject::OnDlgDoWait()
{
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   AfxGetApp()->DoWaitCursor(0); // same as CCmdTarget::RestoreWaitCursor
}

CCmdTarget::EnumOleVerbs

Nesnenin OLE fiillerini numaralandırır.

BOOL EnumOleVerbs(LPENUMOLEVERB* ppenumOleVerb);

Parametreler

ppenumOleVerb
Arabirim işaretçisine yönelik bir IEnumOLEVERB işaretçi.

Dönüş Değeri

TRUE nesnesi en az bir OLE fiilini destekliyorsa (bu durumda *ppenumOleVerb bir IEnumOLEVERB numaralandırıcı arabirimine işaret ederse), aksi takdirde FALSE.

Açıklamalar

Bu üye işlevi temelde uygulamasının bir uygulamasıdır IOleObject::EnumVerbs.

CCmdTarget::FromIDispatch

Bir sınıfın otomasyon üyesi işlevlerinden alınan bir IDispatch işaretçiyi nesnenin CCmdTarget arabirimlerini uygulayan nesneyle eşlemek için bu işlevi çağırın IDispatch .

static CCmdTarget* PASCAL FromIDispatch(LPDISPATCH lpDispatch);

Parametreler

lpDispatch
Nesne işaretçisi IDispatch .

Dönüş Değeri

ile lpDispatchilişkilendirilmiş nesnenin CCmdTarget işaretçisi. Nesne bir Microsoft Foundation Sınıf IDispatch nesnesi olarak tanınmıyorsa IDispatch bu işlev döndürürNULL.

Açıklamalar

Bu işlevin sonucu, üye işlevine GetIDispatchyapılan çağrının tersidir.

CCmdTarget::GetDispatchIID

Birincil dağıtım arabirimi kimliğini alır.

virtual BOOL GetDispatchIID(IID* pIID);

Parametreler

pIID
Arabirim kimliğine (GUID) yönelik bir işaretçi.

Dönüş Değeri

TRUE başarılı olursa, aksi takdirde FALSE. Başarılı olursa, *pIID birincil dağıtım arabirimi kimliğine ayarlanır.

Açıklamalar

Türetilmiş sınıflar bu üye işlevini geçersiz kılmalıdır (geçersiz kılınmazsa döndürür GetDispatchIID FALSE). Bkz. COleControl.

CCmdTarget::GetIDispatch

İşaretçiyi IDispatch bir işaretçi döndüren veya başvuruyla işaretçi alan IDispatch bir IDispatch otomasyon yönteminden almak için bu üye işlevini çağırın.

LPDISPATCH GetIDispatch(BOOL bAddRef);

Parametreler

bAddRef
Nesne için başvuru sayısının artırılıp artırılmayacağını belirtir.

Dönüş Değeri

IDispatch Nesneyle ilişkilendirilmiş işaretçi.

Açıklamalar

Oluşturucularında çağıran EnableAutomation ve otomasyonunu etkinleştiren nesneler için bu işlev, arabirimi aracılığıyla iletişim kuran istemciler tarafından kullanılan Temel Sınıf uygulamasına IDispatch IDispatch yönelik bir işaretçi döndürür. Bu işlevin çağrılması işaretçiye otomatik olarak bir başvuru ekler, bu nedenle çağrısı IUnknown::AddRefyapmak gerekmez.

CCmdTarget::GetTypeInfoCount

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır.

virtual UINT GetTypeInfoCount();

Dönüş Değeri

Tür bilgisi arabirimlerinin sayısı.

Açıklamalar

Bu üye işlevi temel olarak uygular IDispatch::GetTypeInfoCount.

Türetilmiş sınıflar, sağlanan tür bilgisi arabirimlerinin sayısını (0 veya 1) döndürmek için bu işlevi geçersiz kılmalıdır. Geçersiz kılınmazsa GetTypeInfoCount 0 döndürür. Geçersiz kılmak için ve GetTypeLibCache'yi de uygulayan GetTypeLib makroyu IMPLEMENT_OLETYPELIB kullanın.

CCmdTarget::GetTypeInfoOfGuid

Belirtilen GUID'ye karşılık gelen tür açıklamasını alır.

HRESULT GetTypeInfoOfGuid(
    LCID lcid,
    const GUID& guid,
    LPTYPEINFO* ppTypeInfo);

Parametreler

lcid
Yerel ayar tanımlayıcısı ( LCID).

guid
Tür açıklamasının GUID'i .

ppTypeInfo
Arabirimin işaretçisine işaret eden ITypeInfo işaretçi.

Dönüş Değeri

HRESULT Çağrının başarısını veya başarısızlığını gösteren. Başarılı olursa, *ppTypeInfo tür bilgisi arabirimine işaret edin.

CCmdTarget::GetTypeLib

Tür kitaplığına bir işaretçi alır.

virtual HRESULT GetTypeLib(
    LCID lcid,
    LPTYPELIB* ppTypeLib);

Parametreler

lcid
Yerel ayar tanımlayıcısı (LCID).

ppTypeLib
Arabirimin işaretçisine işaret eden ITypeLib bir işaretçi.

Dönüş Değeri

HRESULT Çağrının başarısını veya başarısızlığını gösteren. Başarılı olursa, *ppTypeLib tür kitaplığı arabirimine işaret edin.

Açıklamalar

Türetilmiş sınıflar bu üye işlevini geçersiz kılmalıdır (geçersiz kılınmazsa döndürür GetTypeLib TYPE_E_CANTLOADLIBRARY). ve GetTypeLibCache'yi de uygulayan GetTypeInfoCount makroyu IMPLEMENT_OLETYPELIB kullanın.

CCmdTarget::GetTypeLibCache

Tür kitaplığı önbelleğini alır.

virtual CTypeLibCache* GetTypeLibCache();

Dönüş Değeri

Nesne işaretçisi CTypeLibCache .

Açıklamalar

Türetilmiş sınıflar bu üye işlevini geçersiz kılmalıdır (geçersiz kılınmazsa döndürür GetTypeLibCache NULL). ve GetTypeLib'yi de uygulayan GetTypeInfoCount makroyu IMPLEMENT_OLETYPELIB kullanın.

CCmdTarget::IsInvokeAllowed

Bu işlev, belirli bir otomasyon yönteminin (tarafından tanımlanan) çağrılabileceğini belirlemek için MFC'nin uygulaması IDispatch::Invoke tarafından dispidçağrılır.

virtual BOOL IsInvokeAllowed(DISPID dispid);

Parametreler

dispid
Gönderme kimliği.

Dönüş Değeri

TRUE yöntemi çağrılabiliyorsa, aksi takdirde FALSE.

Açıklamalar

döndürürse IsInvokeAllowed TRUEyöntemini Invoke çağırmaya devam eder; aksi takdirde döndürerek Invoke E_UNEXPECTEDbaşarısız olur.

Türetilmiş sınıflar uygun değerleri döndürmek için bu işlevi geçersiz kılabilir (geçersiz kılınmazsa döndürür IsInvokeAllowed TRUE). Belirli COleControl::IsInvokeAllowedbir bölümüne bakın.

CCmdTarget::IsResultExpected

İstemcinin otomasyon işlevi çağrısından dönüş değeri bekleyip beklemediğini belirlemek için kullanın IsResultExpected .

BOOL IsResultExpected();

Dönüş Değeri

Otomasyon işlevinin bir değer döndürmesi gerekiyorsa sıfır olmayan; aksi takdirde 0.

Açıklamalar

OLE arabirimi MFC'ye istemcinin bir işlev çağrısının sonucunu kullanıp kullanmadığı veya yoksaydığı hakkında bilgi sağlar ve MFC de çağrısının IsResultExpectedsonucunu belirlemek için bu bilgileri kullanır. Dönüş değerinin üretimi zaman veya kaynak açısından yoğunsa, dönüş değerini hesaplamadan önce bu işlevi çağırarak verimliliği artırabilirsiniz.

Bu işlev yalnızca bir kez 0 döndürür, böylece istemcinin çağırdığı otomasyon işlevinden çağırırsanız diğer otomasyon işlevlerinden geçerli dönüş değerleri alırsınız.

IsResultExpected otomasyon işlev çağrısı devam etmediğinde çağrılırsa sıfır olmayan bir değer döndürür.

CCmdTarget::OnCmdMsg

Komut iletilerini yönlendirmek ve göndermek ve komut kullanıcı arabirimi nesnelerinin güncelleştirmesini işlemek için çerçeve tarafından çağrılır.

virtual BOOL OnCmdMsg(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

Parametreler

nID
Komut kimliğini içerir.

nCode
Komut bildirim kodunu tanımlar. değerleri hakkında daha fazla bilgi için bkz. Açıklamalar.nCode

pExtra
değerine nCodegöre kullanılır. hakkında daha fazla bilgi için bkz. Açıklamalar.pExtra

pHandlerInfo
değilseNULL, OnCmdMsg komutunu göndermek yerine yapısının pHandlerInfo ve pmf üyelerini doldururpTarget. Genellikle bu parametre olmalıdır NULL.

Dönüş Değeri

İleti işlenirse sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bu, çerçeve komut mimarisinin ana uygulama yordamıdır.

Çalışma zamanında, OnCmdMsg diğer nesnelere bir komut gönderir veya asıl ileti eşleme aramasını yapan kök sınıfını CCmdTarget::OnCmdMsgçağırarak komutun kendisini işler. Varsayılan komut yönlendirmesinin tam açıklaması için bkz . İleti İşleme ve Eşleme Konuları.

Nadir durumlarda, çerçevenin standart komut yönlendirmesini genişletmek için bu üye işlevini geçersiz kılmak isteyebilirsiniz. Komut yönlendirme mimarisinin gelişmiş ayrıntıları için Teknik Not 21'e bakın.

öğesini geçersiz kılarsanızOnCmdMsg, değerine bağlı olarak, komut bildirim kodunu ve pExtraiçin nCodeuygun değeri nCodesağlamanız gerekir. Aşağıdaki tabloda ilgili değerleri listelemektedir:

nCode değer pExtra değer
CN_COMMAND CCmdUI*
CN_EVENT AFX_EVENT*
CN_UPDATE_COMMAND_UI CCmdUI*
CN_OLECOMMAND COleCmdUI*
CN_OLE_UNREGISTER NULL

Örnek

// This example illustrates extending the framework's standard command
// route from the view to objects managed by the view.  This example
// is from an object-oriented drawing application, similar to the
// DRAWCLI sample application, which draws and edits "shapes".
BOOL CMyView::OnCmdMsg(UINT nID,
                       int nCode,
                       void *pExtra,
                       AFX_CMDHANDLERINFO *pHandlerInfo)
{
   // Extend the framework's command route from the view to
   // the application-specific CMyShape that is currently selected
   // in the view. m_pActiveShape is NULL if no shape object
   // is currently selected in the view.
   if ((m_pActiveShape != NULL) &&
       m_pActiveShape->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))
      return TRUE;

   // If the object(s) in the extended command route don't handle
   // the command, then let the base class OnCmdMsg handle it.
   return CView::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}

 

// The command handler for ID_SHAPE_COLOR (menu command to change
// the color of the currently selected shape) was added to the message
// map of CMyShape (note, not CMyView) using the Properties window.
// The menu item will be automatically enabled or disabled, depending
// on whether a CMyShape is currently selected in the view, that is,
// depending on whether CMyView::m_pActiveView is NULL.  It is not
// necessary to implement an ON_UPDATE_COMMAND_UI handler to enable
// or disable the menu item.
BEGIN_MESSAGE_MAP(CMyShape, CCmdTarget)
ON_COMMAND(ID_SHAPE_COLOR, &CMyShape::OnShapeColor)
END_MESSAGE_MAP()

CCmdTarget::OnFinalRelease

Nesneye veya nesneden son OLE başvurusu serbest bırakıldığında çerçeve tarafından çağrılır.

virtual void OnFinalRelease();

Açıklamalar

Bu durum için özel işleme sağlamak için bu işlevi geçersiz kılın. Varsayılan uygulama nesneyi siler.

CCmdTarget::RestoreWaitCursor

Sistem imleci değiştikten sonra (örneğin, uzun bir işlemin ortasında bir ileti kutusu açıldıktan ve kapatıldıktan sonra) uygun kum saati imlecini geri yüklemek için bu işlevi çağırın.

void RestoreWaitCursor();

Örnek

// The following example illustrates the most common case
// of displaying the hourglass cursor during some lengthy
// processing of a command handler implemented in some
// CCmdTarget-derived class, such as a document or view.
void CMyView::OnBeginSleepEnd()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// The next example illustrates RestoreWaitCursor.
void CMyView::OnBeginDlgRestore()
{
   BeginWaitCursor(); // display the hourglass cursor
   // do some lengthy processing
   // The dialog box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the dialog box is
   // closed.
   CFileDialog dlg(TRUE);
   dlg.DoModal();

   // It is necessary to call RestoreWaitCursor here in order
   // to change the cursor back to the hourglass cursor.
   RestoreWaitCursor();
   // do some more lengthy processing
   Sleep(3000);
   EndWaitCursor(); // remove the hourglass cursor
}

// In the above example, the dialog was clearly invoked between
// the pair of calls to BeginWaitCursor and EndWaitCursor.
// Sometimes it may not be clear whether the dialog is invoked
// in between a pair of calls to BeginWaitCursor and EndWaitCursor.
// It is permissible to call RestoreWaitCursor, even if
// BeginWaitCursor was not previously called.  This case is
// illustrated below, where CMyView::AnotherFunction does not
// need to know whether it was called in the context of an
// hourglass cursor.
void CMyView::OnDlgRestore()
{
   // some processing ...
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   RestoreWaitCursor();

   // some more processing ...
}

// If the dialog is invoked from a member function of
// some non-CCmdTarget, then you can call CWinApp::DoWaitCursor
// with a 0 parameter value to restore the hourglass cursor.
void CMyObject::OnDlgDoWait()
{
   CFileDialog dlg(TRUE);
   dlg.DoModal();
   AfxGetApp()->DoWaitCursor(0); // same as CCmdTarget::RestoreWaitCursor
}

Ayrıca bkz.

MFC Örneği ACDUAL
CObject Sınıf
Hiyerarşi Grafiği
CCmdUI Sınıf
CDocument Sınıf
CDocTemplate Sınıf
CWinApp Sınıf
CWnd Sınıf
CView Sınıf
CFrameWnd Sınıf
COleDispatchDriver Sınıf