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
, CWinApp
CDocument
, , CWnd
ve CFrameWnd
. İletileri işlemek için yeni bir sınıf istiyorsanız, sınıfı bu CCmdTarget
tü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
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 hWndParent
tanı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::EnumOleVerbs
numaralandı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 CCmdTarget
oluş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 lpDispatch
iliş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 GetIDispatch
yapı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::AddRef
yapmak 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
TRUE
yöntemini Invoke
çağırmaya devam eder; aksi takdirde döndürerek Invoke
E_UNEXPECTED
baş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::IsInvokeAllowed
bir 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 IsResultExpected
sonucunu 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 nCode
gö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 pExtra
için nCode
uygun değeri nCode
sağ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