CCmdTarget
Kelas
Kelas dasar untuk arsitektur peta pesan Pustaka Kelas Microsoft Foundation.
Sintaks
class CCmdTarget : public CObject
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CCmdTarget::CCmdTarget |
Membuat CCmdTarget objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CCmdTarget::BeginWaitCursor |
Menampilkan kursor sebagai kursor jam-jam. |
CCmdTarget::DoOleVerb |
Menyebabkan tindakan yang ditentukan oleh kata kerja OLE dilakukan. |
CCmdTarget::EnableAutomation |
Mengizinkan otomatisasi OLE untuk CCmdTarget objek. |
CCmdTarget::EnableConnections |
Mengaktifkan penembakan peristiwa melalui titik koneksi. |
CCmdTarget::EnableTypeLib |
Mengaktifkan pustaka jenis objek. |
CCmdTarget::EndWaitCursor |
Kembali ke kursor sebelumnya. |
CCmdTarget::EnumOleVerbs |
Menghitung kata kerja OLE objek. |
CCmdTarget::FromIDispatch |
Mengembalikan penunjuk ke objek yang CCmdTarget terkait dengan IDispatch penunjuk. |
CCmdTarget::GetDispatchIID |
Mendapatkan ID antarmuka pengiriman utama. |
CCmdTarget::GetIDispatch |
Mengembalikan penunjuk ke objek yang IDispatch terkait dengan CCmdTarget objek. |
CCmdTarget::GetTypeInfoCount |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek. |
CCmdTarget::GetTypeInfoOfGuid |
Mengambil deskripsi jenis yang sesuai dengan GUID yang ditentukan. |
CCmdTarget::GetTypeLib |
Mendapatkan penunjuk ke pustaka jenis. |
CCmdTarget::GetTypeLibCache |
Mendapatkan cache pustaka jenis. |
CCmdTarget::IsInvokeAllowed |
Mengaktifkan pemanggilan metode otomatisasi. |
CCmdTarget::IsResultExpected |
Mengembalikan nonzero jika fungsi otomatisasi harus mengembalikan nilai. |
CCmdTarget::OnCmdMsg |
Merutekan dan mengirimkan pesan perintah. |
CCmdTarget::OnFinalRelease |
Membersihkan setelah referensi OLE terakhir dirilis. |
CCmdTarget::RestoreWaitCursor |
Memulihkan kursor hourglass. |
Keterangan
Peta pesan merutekan perintah atau pesan ke fungsi anggota yang Anda tulis untuk menanganinya. (Perintah adalah pesan dari item menu, tombol perintah, atau kunci akselerator.)
Kelas kerangka kerja utama yang berasal dari CCmdTarget
include , , CWinApp
, CDocument
CWnd
, dan CFrameWnd
CView
. Jika Anda ingin kelas baru menangani pesan, dapatkan kelas dari salah satu kelas turunan ini CCmdTarget
. Anda jarang mendapatkan kelas dari CCmdTarget
secara langsung.
Untuk gambaran umum target dan OnCmdMsg
perutean perintah, lihat Target Perintah, Perutean Perintah, dan Pesan Pemetaan.
CCmdTarget
termasuk fungsi anggota yang menangani tampilan kursor hourglass. Tampilkan kursor hourglass saat Anda mengharapkan perintah mengambil interval waktu yang terlihat untuk dijalankan.
Peta pengiriman, mirip dengan peta pesan, digunakan untuk mengekspos fungsionalitas otomatisasi IDispatch
OLE. Dengan mengekspos antarmuka ini, aplikasi lain (seperti Visual Basic) dapat memanggil ke aplikasi Anda.
Hierarki Warisan
CCmdTarget
Persyaratan
Header: afxwin.h
CCmdTarget::BeginWaitCursor
Panggil fungsi ini untuk menampilkan kursor sebagai hourglass ketika Anda mengharapkan perintah untuk mengambil interval waktu yang nyata untuk dijalankan.
void BeginWaitCursor();
Keterangan
Kerangka kerja memanggil fungsi ini untuk menunjukkan kepada pengguna bahwa ia sibuk, seperti ketika CDocument
objek dimuat atau disimpan sendiri ke file.
Tindakan BeginWaitCursor
tidak selalu efektif di luar satu handler pesan seperti tindakan lain, seperti OnSetCursor
penanganan, dapat mengubah kursor.
Panggil EndWaitCursor
untuk memulihkan kursor sebelumnya.
Contoh
// 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
Membuat CCmdTarget
objek.
CCmdTarget();
CCmdTarget::DoOleVerb
Menyebabkan tindakan yang ditentukan oleh kata kerja OLE dilakukan.
BOOL DoOleVerb(
LONG iVerb,
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
Parameter
iVerb
Pengidentifikasi numerik kata kerja.
lpMsg
Penunjuk ke MSG
struktur yang menjelaskan peristiwa (seperti klik ganda) yang memanggil kata kerja.
hWndParent
Handel jendela dokumen yang berisi objek.
lpRect
Arahkan ke RECT
struktur yang berisi koordinat, dalam piksel, yang menentukan persegi panjang pembatas objek di hWndParent
.
Tampilkan Nilai
TRUE
jika berhasil, jika tidak FALSE
.
Keterangan
Fungsi anggota ini pada dasarnya adalah implementasi dari IOleObject::DoVerb
. Kemungkinan tindakan dijumlahkan oleh CCmdTarget::EnumOleVerbs
.
CCmdTarget::EnableAutomation
Panggil fungsi ini untuk mengaktifkan otomatisasi OLE untuk objek.
void EnableAutomation();
Keterangan
Fungsi ini biasanya dipanggil dari konstruktor objek Anda dan hanya boleh dipanggil jika peta pengiriman telah dideklarasikan untuk kelas . Untuk informasi selengkapnya tentang otomatisasi, lihat artikel Klien Automation dan Server Automation.
CCmdTarget::EnableConnections
Mengaktifkan penembakan peristiwa melalui titik koneksi.
void EnableConnections();
Keterangan
Untuk mengaktifkan titik koneksi, panggil fungsi anggota ini di konstruktor kelas turunan Anda.
CCmdTarget::EnableTypeLib
Mengaktifkan pustaka jenis objek.
void EnableTypeLib();
Keterangan
Panggil fungsi anggota ini di konstruktor objek -turunan Anda CCmdTarget
jika menyediakan informasi jenis.
CCmdTarget::EndWaitCursor
Panggil fungsi ini setelah Anda memanggil BeginWaitCursor
fungsi anggota untuk kembali dari kursor hourglass ke kursor sebelumnya.
void EndWaitCursor();
Keterangan
Kerangka kerja ini juga memanggil fungsi anggota ini setelah disebut kursor hourglass.
Contoh
// 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
Menghitung kata kerja OLE objek.
BOOL EnumOleVerbs(LPENUMOLEVERB* ppenumOleVerb);
Parameter
ppenumOleVerb
Penunjuk ke penunjuk ke IEnumOLEVERB
antarmuka.
Tampilkan Nilai
TRUE
jika objek mendukung setidaknya satu kata kerja OLE (dalam hal ini *ppenumOleVerb
menunjuk ke IEnumOLEVERB
antarmuka enumerator), jika tidak FALSE
.
Keterangan
Fungsi anggota ini pada dasarnya adalah implementasi dari IOleObject::EnumVerbs
.
CCmdTarget::FromIDispatch
Panggil fungsi ini untuk memetakan IDispatch
pointer, yang diterima dari fungsi anggota otomatisasi kelas, ke dalam CCmdTarget
objek yang mengimplementasikan antarmuka IDispatch
objek.
static CCmdTarget* PASCAL FromIDispatch(LPDISPATCH lpDispatch);
Parameter
lpDispatch
Penunjuk ke IDispatch
objek.
Tampilkan Nilai
Penunjuk ke objek yang CCmdTarget
terkait dengan lpDispatch
. Fungsi ini mengembalikan NULL
jika IDispatch
objek tidak dikenali sebagai objek Kelas IDispatch
Microsoft Foundation.
Keterangan
Hasil dari fungsi ini adalah inversi panggilan ke fungsi GetIDispatch
anggota .
CCmdTarget::GetDispatchIID
Mendapatkan ID antarmuka pengiriman utama.
virtual BOOL GetDispatchIID(IID* pIID);
Parameter
pIID
Penunjuk ke ID antarmuka ( GUID).
Tampilkan Nilai
TRUE
jika berhasil, jika tidak FALSE
. Jika berhasil, *pIID
diatur ke ID antarmuka pengiriman utama.
Keterangan
Kelas turunan harus mengambil alih fungsi anggota ini (jika tidak ditimpa, GetDispatchIID
mengembalikan FALSE
). Lihat COleControl
.
CCmdTarget::GetIDispatch
Panggil fungsi anggota ini untuk mengambil IDispatch
penunjuk dari metode otomatisasi yang mengembalikan IDispatch
penunjuk atau mengambil IDispatch
penunjuk menurut referensi.
LPDISPATCH GetIDispatch(BOOL bAddRef);
Parameter
bAddRef
Menentukan apakah akan menaikkan jumlah referensi untuk objek.
Tampilkan Nilai
Penunjuk IDispatch
yang terkait dengan objek.
Keterangan
Untuk objek yang memanggil EnableAutomation
konstruktor mereka, membuatnya otomatisasi diaktifkan, fungsi ini mengembalikan penunjuk ke implementasi IDispatch
Kelas Foundation yang digunakan oleh klien yang berkomunikasi melalui IDispatch
antarmuka. Memanggil fungsi ini secara otomatis menambahkan referensi ke penunjuk, sehingga tidak perlu melakukan panggilan ke IUnknown::AddRef
.
CCmdTarget::GetTypeInfoCount
Mengambil jumlah antarmuka informasi jenis yang disediakan objek.
virtual UINT GetTypeInfoCount();
Tampilkan Nilai
Jumlah antarmuka informasi jenis.
Keterangan
Fungsi anggota ini pada dasarnya mengimplementasikan IDispatch::GetTypeInfoCount
.
Kelas turunan harus mengambil alih fungsi ini untuk mengembalikan jumlah antarmuka informasi jenis yang disediakan (baik 0 atau 1). Jika tidak ditimpa, GetTypeInfoCount
mengembalikan 0. Untuk mengambil alih, gunakan IMPLEMENT_OLETYPELIB
makro, yang juga mengimplementasikan GetTypeLib
dan GetTypeLibCache
.
CCmdTarget::GetTypeInfoOfGuid
Mengambil deskripsi jenis yang sesuai dengan GUID yang ditentukan.
HRESULT GetTypeInfoOfGuid(
LCID lcid,
const GUID& guid,
LPTYPEINFO* ppTypeInfo);
Parameter
lcid
Pengidentifikasi lokal ( LCID
).
guid
GUID deskripsi jenis.
ppTypeInfo
Arahkan ke penunjuk ke ITypeInfo
antarmuka.
Tampilkan Nilai
Menunjukkan HRESULT
keberhasilan atau kegagalan panggilan. Jika berhasil, *ppTypeInfo
arahkan ke antarmuka informasi jenis.
CCmdTarget::GetTypeLib
Mendapatkan penunjuk ke pustaka jenis.
virtual HRESULT GetTypeLib(
LCID lcid,
LPTYPELIB* ppTypeLib);
Parameter
lcid
Pengidentifikasi lokal (LCID).
ppTypeLib
Penunjuk ke penunjuk ke ITypeLib
antarmuka.
Tampilkan Nilai
Menunjukkan HRESULT
keberhasilan atau kegagalan panggilan. Jika berhasil, *ppTypeLib
arahkan ke antarmuka pustaka jenis.
Keterangan
Kelas turunan harus mengambil alih fungsi anggota ini (jika tidak ditimpa, GetTypeLib
mengembalikan TYPE_E_CANTLOADLIBRARY
). IMPLEMENT_OLETYPELIB
Gunakan makro, yang juga mengimplementasikan GetTypeInfoCount
dan GetTypeLibCache
.
CCmdTarget::GetTypeLibCache
Mendapatkan cache pustaka jenis.
virtual CTypeLibCache* GetTypeLibCache();
Tampilkan Nilai
Penunjuk ke CTypeLibCache
objek.
Keterangan
Kelas turunan harus mengambil alih fungsi anggota ini (jika tidak ditimpa, GetTypeLibCache
mengembalikan NULL
). IMPLEMENT_OLETYPELIB
Gunakan makro, yang juga mengimplementasikan GetTypeInfoCount
dan GetTypeLib
.
CCmdTarget::IsInvokeAllowed
Fungsi ini dipanggil oleh implementasi IDispatch::Invoke
MFC untuk menentukan apakah metode otomatisasi tertentu (diidentifikasi oleh dispid
) dapat dipanggil.
virtual BOOL IsInvokeAllowed(DISPID dispid);
Parameter
dispid
ID pengiriman.
Tampilkan Nilai
TRUE
jika metode dapat dipanggil, jika tidak FALSE
.
Keterangan
Jika IsInvokeAllowed
mengembalikan TRUE
, Invoke
melanjutkan untuk memanggil metode; jika tidak, Invoke
akan gagal, mengembalikan E_UNEXPECTED
.
Kelas turunan dapat mengambil alih fungsi ini untuk mengembalikan nilai yang sesuai (jika tidak ditimpa, IsInvokeAllowed
mengembalikan TRUE
). Lihat secara khusus COleControl::IsInvokeAllowed
.
CCmdTarget::IsResultExpected
Gunakan IsResultExpected
untuk memastikan apakah klien mengharapkan nilai pengembalian dari panggilannya ke fungsi otomatisasi.
BOOL IsResultExpected();
Tampilkan Nilai
Bukan nol jika fungsi otomatisasi harus mengembalikan nilai; jika tidak, 0.
Keterangan
Antarmuka OLE menyediakan informasi ke MFC tentang apakah klien menggunakan atau mengabaikan hasil panggilan fungsi, dan MFC pada gilirannya menggunakan informasi ini untuk menentukan hasil panggilan ke IsResultExpected
. Jika produksi nilai pengembalian adalah waktu atau intensif sumber daya, Anda dapat meningkatkan efisiensi dengan memanggil fungsi ini sebelum menghitung nilai yang dikembalikan.
Fungsi ini mengembalikan 0 hanya sekali sehingga Anda akan mendapatkan nilai pengembalian yang valid dari fungsi otomatisasi lain jika Anda memanggilnya dari fungsi otomatisasi yang telah dipanggil klien.
IsResultExpected
mengembalikan nilai bukan nol jika dipanggil saat panggilan fungsi otomatisasi tidak sedang berlangsung.
CCmdTarget::OnCmdMsg
Dipanggil oleh kerangka kerja untuk merutekan dan mengirimkan pesan perintah dan untuk menangani pembaruan objek antarmuka pengguna perintah.
virtual BOOL OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);
Parameter
nID
Berisi ID perintah.
nCode
Mengidentifikasi kode pemberitahuan perintah. Lihat Keterangan untuk informasi selengkapnya tentang nilai untuk nCode
.
pExtra
Digunakan sesuai dengan nilai nCode
. Lihat Keterangan untuk informasi selengkapnya tentang pExtra
.
pHandlerInfo
Jika tidak NULL
, OnCmdMsg
mengisi pTarget
anggota pHandlerInfo
struktur dan pmf
alih-alih mengirimkan perintah. Biasanya, parameter ini harus NULL
.
Tampilkan Nilai
Bukan nol jika pesan ditangani; jika tidak, 0.
Keterangan
Ini adalah rutinitas implementasi utama dari arsitektur perintah kerangka kerja.
Pada waktu proses, OnCmdMsg
mengirimkan perintah ke objek lain atau menangani perintah itu sendiri dengan memanggil kelas CCmdTarget::OnCmdMsg
akar , yang melakukan pencarian peta pesan yang sebenarnya. Untuk deskripsi lengkap perutean perintah default, lihat Topik Penanganan dan Pemetaan Pesan.
Pada kesempatan yang jarang terjadi, Anda mungkin ingin mengambil alih fungsi anggota ini untuk memperluas perutean perintah standar kerangka kerja. Lihat Catatan Teknis 21 untuk detail lanjutan arsitektur perutean perintah.
Jika Anda mengambil OnCmdMsg
alih , Anda harus memberikan nilai yang sesuai untuk nCode
, kode pemberitahuan perintah, dan pExtra
, yang tergantung pada nilai nCode
. Tabel berikut mencantumkan nilai terkaitnya:
nCode nilai |
pExtra nilai |
---|---|
CN_COMMAND |
CCmdUI * |
CN_EVENT |
AFX_EVENT * |
CN_UPDATE_COMMAND_UI |
CCmdUI * |
CN_OLECOMMAND |
COleCmdUI * |
CN_OLE_UNREGISTER |
NULL |
Contoh
// 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
Dipanggil oleh kerangka kerja ketika referensi OLE terakhir ke atau dari objek dirilis.
virtual void OnFinalRelease();
Keterangan
Ambil alih fungsi ini untuk memberikan penanganan khusus untuk situasi ini. Implementasi default menghapus objek.
CCmdTarget::RestoreWaitCursor
Panggil fungsi ini untuk memulihkan kursor hourglass yang sesuai setelah kursor sistem berubah (misalnya, setelah kotak pesan dibuka lalu ditutup saat berada di tengah operasi panjang).
void RestoreWaitCursor();
Contoh
// 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
}
Lihat juga
Sampel MFC ACDUAL
CObject
Kelas
Bagan Hierarki
CCmdUI
Kelas
CDocument
Kelas
CDocTemplate
Kelas
CWinApp
Kelas
CWnd
Kelas
CView
Kelas
CFrameWnd
Kelas
COleDispatchDriver
Kelas