CWinApp Sınıfı
Bir Windows uygulama nesnesi türetdiğiniz temel sınıf.
Sözdizimi
class CWinApp : public CWinThread
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CWinApp::CWinApp | Bir CWinApp nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CWinApp::AddDocTemplate | Uygulamanın kullanılabilir belge şablonları listesine bir belge şablonu ekler. |
CWinApp::AddToRecentFileList | En son kullanılan (MRU) dosya listesine bir dosya adı ekler. |
CWinApp::ApplicationRecoveryCallback | Uygulama beklenmedik bir şekilde çıktığında çerçeve tarafından çağrılır. |
CWinApp::CloseAllDocuments | Tüm açık belgeleri kapatır. |
CWinApp::CreatePrinterDC | Yazıcı cihazı bağlamı oluşturur. |
CWinApp::D elRegTree | Belirtilen anahtarı ve tüm alt anahtarlarını siler. |
CWinApp::D oMessageBox | Uygulama için AfxMessageBox uygular. |
CWinApp::D oWaitCursor | Bekleme imlecini açar ve kapatır. |
CWinApp::EnableD2DSupport | Uygulama D2D desteğini etkinleştirir. Ana pencere başlatılmadan önce bu yöntemi çağırın. |
CWinApp::EnableHtmlHelp | Uygulama için WinHelp yerine HTMLHelp uygular. |
CWinApp::EnableTaskbarInteraction | Görev çubuğu etkileşimlerini etkinleştirir. |
CWinApp::ExitInstance | Uygulamanız sonlandırıldığında temizlemek için geçersiz kılın. |
CWinApp::GetApplicationRecoveryParameter | Uygulama kurtarma yöntemi için giriş parametresini alır. |
CWinApp::GetApplicationRecoveryPingInterval | Yeniden başlatma yöneticisinin kurtarma geri çağırma işlevinin döndürülmesini beklediği süreyi döndürür. |
CWinApp::GetApplicationRestartFlags | Yeniden başlatma yöneticisinin bayraklarını döndürür. |
CWinApp::GetAppRegistryKey | HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName anahtarını döndürür. |
CWinApp::GetDataRecoveryHandler | Uygulamanın bu örneği için veri kurtarma işleyicisini alır. |
CWinApp::GetFirstDocTemplatePosition | İlk belge şablonunun konumunu alır. |
CWinApp::GetHelpMode | Uygulama tarafından kullanılan yardım türünü alır. |
CWinApp::GetNextDocTemplate | Belge şablonunun konumunu alır. Özyinelemeli olarak kullanılabilir. |
CWinApp::GetPrinterDeviceDefaults | Yazıcı cihazı varsayılanlarını alır. |
CWinApp::GetProfileBinary | Uygulamanın içindeki bir girdiden ikili verileri alır. INI dosyası. |
CWinApp::GetProfileInt | Uygulamanın içindeki bir girdiden tamsayı alır. INI dosyası. |
CWinApp::GetProfileString | Uygulamanın içindeki bir girdiden dize alır. INI dosyası. |
CWinApp::GetSectionKey | HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection anahtarını döndürür. |
CWinApp::HideApplication | Tüm belgeleri kapatmadan önce uygulamayı gizler. |
CWinApp::HtmlHelp | HTMLHelp Windows işlevini çağırır. |
CWinApp::InitInstance | Pencere nesnelerinizi oluşturma gibi Windows örneği başlatma işlemini gerçekleştirmek için geçersiz kılın. |
CWinApp::IsTaskbarInteractionEnabled | Windows 7 Görev Çubuğu etkileşiminin etkinleştirilip etkinleştirilmediğini belirtir. |
CWinApp::LoadCursor | İmleç kaynağını yükler. |
CWinApp::LoadIcon | Simge kaynağını yükler. |
CWinApp::LoadOEMCursor | OCR_ sabitlerinin WINDOWS.H'de belirttiği önceden tanımlanmış Bir Windows OEM imleci yükler. |
CWinApp::LoadOEMIcon | OIC_ sabitlerinin WINDOWS.H'de belirttiği önceden tanımlanmış bir Windows OEM simgesi yükler. |
CWinApp::LoadStandardCursor | IDC_ sabitlerinin WINDOWS.H'de belirttiği önceden tanımlanmış bir Windows imleci yükler. |
CWinApp::LoadStandardIcon | IDI_ sabitlerinin WINDOWS.H'de belirttiği önceden tanımlanmış bir Windows simgesini yükler. |
CWinApp::OnDDECommand | Dinamik veri değişimi (DDE) yürütme komutuna yanıt olarak çerçeve tarafından çağrılır. |
CWinApp::OnIdle | Uygulamaya özgü boşta kalma süresi işlemesi gerçekleştirmek için geçersiz kılın. |
CWinApp::OpenDocumentFile | Bir dosyadan belge açmak için çerçeve tarafından çağrılır. |
CWinApp::P arseCommandLine | Komut satırında tek tek parametreleri ve bayrakları ayrıştırıyor. |
CWinApp::P reTranslateMessage | İletileri TranslateMessage ve DispatchMessage Windows işlevlerine göndermeden önce filtreler. |
CWinApp::P rocessMessageFilter | Belirli iletileri uygulamaya ulaşmadan önce durdurur. |
CWinApp::P rocessShellCommand | Komut satırı bağımsız değişkenlerini ve bayraklarını işler. |
CWinApp::P rocessWndProcException | Uygulamanın iletisi ve komut işleyicileri tarafından oluşan tüm işlenmeyen özel durumları durdurur. |
CWinApp::Register | Özelleştirilmiş kayıt gerçekleştirir. |
CWinApp::RegisterWithRestartManager | Uygulamayı yeniden başlatma yöneticisine kaydeder. |
CWinApp::ReopenPreviousFilesAtRestart | Uygulamadan beklenmedik bir şekilde çıkıldığında yeniden başlatma yöneticisinin açık olan dosyaları yeniden açıp açmayacağını belirler. |
CWinApp::RestartInstance | Yeniden başlatma yöneticisi tarafından başlatılan bir uygulama yeniden başlatma işlemini işler. |
CWinApp::RestoreAutosavedFilesAtRestart | Uygulamayı yeniden başlatırken yeniden başlatma yöneticisinin otomatik olarak kaydedilen dosyaları geri yükleyip geri yüklemediğini belirler. |
CWinApp::Run | Varsayılan ileti döngüsünü çalıştırır. İleti döngüsünü özelleştirmek için geçersiz kılın. |
CWinApp::RunAutomated | Uygulamanın komut satırını /Automation seçeneği için test edin. Kullanımdan kalktı. Bunun yerine, ParseCommandLine çağrıldıktan sonra CCommandLineInfo::m_bRunAutomated değerini kullanın. |
CWinApp::RunEmbedded | /Embedding seçeneği için uygulamanın komut satırını test edin . Kullanımdan kalktı. Bunun yerine, ParseCommandLine çağrıldıktan sonra CCommandLineInfo::m_bRunEmbedded değerini kullanın. |
CWinApp::SaveAllModified | Kullanıcıdan değiştirilen tüm belgeleri kaydetmesini ister. |
CWinApp::SelectPrinter | Daha önce bir kullanıcı tarafından bir yazdırma iletişim kutusu aracılığıyla gösterilen yazıcıyı seçer. |
CWinApp::SetHelpMode | Uygulama tarafından kullanılan yardım türünü ayarlar ve başlatır. |
CWinApp::SupportsApplicationRecovery | Yeniden başlatma yöneticisinin beklenmedik şekilde çıkan bir uygulamayı kurtarıp kurtarmayacağını belirler. |
CWinApp::SupportsAutosaveAtInterval | Yeniden başlatma yöneticisinin belgeleri düzenli aralıklarla otomatik olarak açık durumda tuşlarına basıp atmayacağını belirler. |
CWinApp::SupportsAutosaveAtRestart | Uygulama yeniden başlatıldığında, yeniden başlatma yöneticisinin açık belgeleri otomatik olarak alıp almadığını belirler. |
CWinApp::SupportsRestartManager | Uygulamanın yeniden başlatma yöneticisini destekleyip desteklemediğini belirler. |
CWinApp::Kaydını Kaldır | Nesne tarafından CWinApp kaydedildiği bilinen her şeyin kaydını kaldırır. |
CWinApp::WinHelp | WinHelp Windows işlevini çağırır. |
CWinApp::WriteProfileBinary | uygulamanın içindeki bir girdiye ikili veri yazar. INI dosyası. |
CWinApp::WriteProfileInt | Uygulamanın içindeki bir girdiye tamsayı yazar. INI dosyası. |
CWinApp::WriteProfileString | Uygulamanın içindeki bir girdiye bir dize yazar. INI dosyası. |
Korumalı Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CWinApp::EnableShellOpen | Kullanıcının Windows Dosya Yöneticisi'nden veri dosyalarını açmasına izin verir. |
CWinApp::LoadStdProfileSettings | Standart yükler. INI dosya ayarları ve MRU dosya listesi özelliğini etkinleştirir. |
CWinApp::OnContextHelp | Shift+F1 Yardımı'nı uygulama içinde işler. |
CWinApp::OnFileNew | ID_FILE_NEW komutunu uygular. |
CWinApp::OnFileOpen | ID_FILE_OPEN komutunu uygular. |
CWinApp::OnFilePrintSetup | ID_FILE_PRINT_SETUP komutunu uygular. |
CWinApp::OnHelp | Uygulama içinde F1 Yardımı'nı işler (geçerli bağlamı kullanarak). |
CWinApp::OnHelpFinder | ID_HELP_FINDER ve ID_DEFAULT_HELP komutlarını işler. |
CWinApp::OnHelpIndex | ID_HELP_INDEX komutunu işler ve varsayılan bir Yardım konusu sağlar. |
CWinApp::OnHelpUsing | ID_HELP_USING komutunu işler. |
CWinApp::RegisterShellFileTypes | Uygulamanın tüm belge türlerini Windows Dosya Yöneticisi'ne kaydeder. |
CWinApp::SetAppID | Uygulama için Uygulama Kullanıcı Modeli Kimliğini açıkça ayarlar. Bu yöntem, kullanıcıya herhangi bir kullanıcı arabirimi sunulmadan önce çağrılmalıdır (en iyi yer uygulama oluşturucudur). |
CWinApp::SetRegistryKey | Uygulama ayarlarının yerine kayıt defterinde depolanmasına neden olur. INI dosyaları. |
CWinApp::UnregisterShellFileTypes | Windows Dosya Yöneticisi ile uygulamanın tüm belge türlerinin kaydını kaldırmış olur. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CWinApp::m_bHelpMode | Kullanıcının Yardım bağlam modunda olup olmadığını gösterir (genellikle SHIFT+F1 ile çağrılır). |
CWinApp::m_eHelpType | Uygulama tarafından kullanılan yardım türünü belirtir. |
CWinApp::m_hInstance | Uygulamanın geçerli örneğini tanımlar. |
CWinApp::m_lpCmdLine | Uygulamanın komut satırını belirten null olarak sonlandırılan bir dizeye işaret eder. |
CWinApp::m_nCmdShow | Pencerenin başlangıçta nasıl gösterileceğini belirtir. |
CWinApp::m_pActiveWnd | Bir OLE sunucusu yerinde etkin olduğunda kapsayıcı uygulamasının ana penceresine yönelik işaretçi. |
CWinApp::m_pszAppID | Uygulama Kullanıcı Modeli Kimliği. |
CWinApp::m_pszAppName | Uygulamanın adını belirtir. |
CWinApp::m_pszExeName | Uygulamanın modül adı. |
CWinApp::m_pszHelpFilePath | Uygulamanın Yardım dosyasının yolu. |
CWinApp::m_pszProfileName | Uygulamanın . INI dosya adı. |
CWinApp::m_pszRegistryKey | Uygulama profili ayarlarını depolamak için tam kayıt defteri anahtarını belirlemek için kullanılır. |
Korumalı Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CWinApp::m_dwRestartManagerSupportFlags | Yeniden başlatma yöneticisinin nasıl davranacağını belirleyen bayraklar. |
CWinApp::m_nAutosaveInterval | Otomatik tasdikler arasındaki milisaniye cinsinden süre. |
CWinApp::m_pDataRecoveryHandler | Uygulama için veri kurtarma işleyicisinin işaretçisi. |
Açıklamalar
Uygulama nesnesi, uygulamanızı (ve her örneğini) başlatmak ve uygulamayı çalıştırmak için üye işlevleri sağlar.
Microsoft Foundation sınıflarını kullanan her uygulama yalnızca öğesinden CWinApp
türetilmiş bir nesne içerebilir. Bu nesne, diğer C++ genel nesneleri oluşturulduğunda oluşturulur ve Windows, Microsoft Foundation Sınıf Kitaplığı tarafından sağlanan işlevi çağırdığında WinMain
zaten kullanılabilir. Türetilmiş CWinApp
nesnenizi genel düzeyde bildirin.
uygulamasından CWinApp
bir uygulama sınıfı türetdiğinizde, uygulamanızın ana pencere nesnesini oluşturmak için InitInstance üye işlevini geçersiz kılın.
Üye işlevlerine CWinApp
ek olarak, Microsoft Foundation Sınıf Kitaplığı nesnenize CWinApp
ve diğer genel bilgilere erişmek için aşağıdaki genel işlevleri sağlar:
AfxGetApp nesneye
CWinApp
yönelik bir işaretçi alır.AfxGetInstanceHandle Geçerli uygulama örneğine bir tanıtıcı alır.
AfxGetResourceHandle Uygulamanın kaynakları için bir tanıtıcı alır.
AfxGetAppName Uygulamanın adını içeren bir dizeye yönelik bir işaretçi alır. Alternatif olarak, nesneye
CWinApp
bir işaretçiniz varsa, uygulamanın adını almak için kullanınm_pszExeName
.
Aşağıdakilere genel bir bakış da dahil olmak üzere, sınıfı hakkında CWinApp
daha fazla bilgi için bkz. CWinApp: Uygulama Sınıfı:
CWinApp
- Uygulama Sihirbazı tarafından yazılan türetilmiş kod.CWinApp
'nin uygulamanızın yürütme dizisindeki rolü.CWinApp
'nin varsayılan üye işlevi uygulamaları.CWinApp
'nin anahtarı geçersiz kılınabilir.
Veri m_hPrevInstance
üyesi artık yok. Uygulamanın başka bir örneğinin çalışıp çalışmadığını belirlemek için adlandırılmış bir mutex kullanın. Mutex'i açma işlemi başarısız olursa, uygulamanın çalışan başka bir örneği yoktur.
Devralma Hiyerarşisi
CWinApp
Gereksinimler
Üst bilgi: afxwin.h
CWinApp::AddDocTemplate
Uygulamanın koruduğu kullanılabilir belge şablonları listesine belge şablonu eklemek için bu üye işlevini çağırın.
void AddDocTemplate(CDocTemplate* pTemplate);
Parametreler
pTemplate
Eklenecek öğesinin CDocTemplate
işaretçisi.
Açıklamalar
RegisterShellFileTypes'ı çağırmadan önce tüm belge şablonlarını bir uygulamaya eklemeniz gerekir.
Örnek
// The following code is produced by the Application Wizard when you
// choose the MDI (multiple document interface) option.
CMultiDocTemplate *pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
CWinApp::AddToRecentFileList
MRU dosya listesine lpszPathName eklemek için bu üye işlevini çağırın.
virtual void AddToRecentFileList(LPCTSTR lpszPathName);
Parametreler
lpszPathName
Dosyanın yolu.
Açıklamalar
Bu üye işlevini kullanmadan önce geçerli MRU dosya listesini yüklemek için LoadStdProfileSettings üye işlevini çağırmalısınız.
Çerçeve, dosyayı açtığında veya Farklı Kaydet komutunu yürüterek dosyayı yeni bir adla kaydettiğinde bu üye işlevini çağırır.
Örnek
// This adds the pathname c:\temp\test.doc to the top of
// the most recently used (MRU) list in the File menu.
AfxGetApp()->AddToRecentFileList(_T("c:\\temp\\test.doc"));
CWinApp::ApplicationRecoveryCallback
Uygulama beklenmedik bir şekilde çıktığında çerçeve tarafından çağrılır.
virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);
Parametreler
lpvParam
[in] Gelecekte kullanmak üzere ayrılmıştır.
Dönüş Değeri
Bu yöntem başarılı olursa 0; hata oluşursa sıfır olmayan.
Açıklamalar
Uygulamanız yeniden başlatma yöneticisini destekliyorsa, uygulamanız beklenmedik bir şekilde çıktığında çerçeve bu işlevi çağırır.
varsayılan uygulaması ApplicationRecoveryCallback
, şu anda açık olan belgelerin listesini kayıt defterine kaydetmek için öğesini kullanır CDataRecoveryHandler
. Bu yöntem hiçbir dosyayı otomatik kaydetmez.
Davranışı özelleştirmek için bu işlevi türetilmiş bir CWinApp Sınıfında geçersiz kılın veya kendi uygulama kurtarma yönteminizi CWinApp::RegisterWithRestartManager parametresi olarak geçirin.
CWinApp::CloseAllDocuments
Çıkmadan önce tüm açık belgeleri kapatmak için bu üye işlevini çağır.
void CloseAllDocuments(BOOL bEndSession);
Parametreler
bEndSession
Windows oturumunun sonlandırılıp sonlandırılmayacağını belirtir. Oturum sonlandırılıyorsa TRUE olur; aksi takdirde YANLIŞ.
Açıklamalar
çağırmadan önce HideApplication'ı çağır CloseAllDocuments
.
CWinApp::CreatePrinterDC
Seçili yazıcıdan bir yazıcı cihazı bağlamı (DC) oluşturmak için bu üye işlevini çağırın.
BOOL CreatePrinterDC(CDC& dc);
Parametreler
Dc
Yazıcı cihazı bağlamı başvurusu.
Dönüş Değeri
Yazıcı cihaz bağlamı başarıyla oluşturulursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
CreatePrinterDC
, başvuruya göre geçirdiğiniz cihaz bağlamını başlatır, böylece yazdırmak için kullanabilirsiniz.
İşlev başarılı olursa, yazdırmayı bitirdiğinizde cihaz bağlamını yok etmeniz gerekir. CDC nesnesinin yıkıcısının bunu yapmasına izin verebilir veya CDC::D eleteDC'yi çağırarak bunu açıkça yapabilirsiniz.
CWinApp::CWinApp
Bir CWinApp
nesnesi oluşturur ve uygulama adı olarak depolanacak lpszAppName değerini geçirir.
CWinApp(LPCTSTR lpszAppName = NULL);
Parametreler
lpszAppName
Windows'un kullandığı uygulama adını içeren null olarak sonlandırılan bir dize. Bu bağımsız değişken sağlanmazsa veya NULL ise, CWinApp
yürütülebilir dosyanın AFX_IDS_APP_TITLE kaynak dizesini veya dosya adını kullanır.
Açıklamalar
Türetilmiş sınıfınızın CWinApp
tek bir genel nesnesini oluşturmanız gerekir. Uygulamanızda yalnızca bir CWinApp
nesne olabilir. Oluşturucu, uygulamayı başlatmak ve çalıştırmak için CWinApp
nesnenin WinMain
üye işlevlerini çağırabilecek şekilde nesneye yönelik bir işaretçi depolar.
CWinApp::D elRegTree
Belirli bir kayıt defteri anahtarını ve tüm alt anahtarlarını siler.
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName);
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName,
CAtlTransactionManager* pTM = NULL);
Parametreler
hParentKey
Kayıt defteri anahtarı için tanıtıcı.
strKeyName
Silinecek kayıt defteri anahtarının adı.
pTM
CAtlTransactionManager nesnesinin işaretçisi.
Dönüş Değeri
İşlev başarılı olursa, dönüş değeri ERROR_SUCCESS. İşlev başarısız olursa, dönüş değeri Winerror.h dosyasında tanımlanan sıfır olmayan bir hata kodudur.
Açıklamalar
Belirtilen anahtarı ve alt anahtarlarını silmek için bu işlevi çağırın.
CWinApp::D oMessageBox
Çerçeve, afxMessageBox genel işlevi için bir ileti kutusu uygulamak üzere bu üye işlevini çağırır.
virtual int DoMessageBox(
LPCTSTR lpszPrompt,
UINT nType,
UINT nIDPrompt);
Parametreler
lpszPrompt
İleti kutusundaki metnin adresi.
nType
İleti kutusu stili.
nIDPrompt
Yardım bağlam dizesinde dizin.
Dönüş Değeri
ile aynı değerleri AfxMessageBox
döndürür.
Açıklamalar
İleti kutusunu açmak için bu üye işlevini çağırmayın; yerine kullanın AfxMessageBox
.
Çağrıların uygulama genelinde işlenmesini AfxMessageBox
özelleştirmek için bu üye işlevini geçersiz kılın.
CWinApp::D oWaitCursor
Bu üye işlevi, CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor ve CCmdTarget::RestoreWaitCursor uygulamak için çerçeve tarafından çağrılır.
virtual void DoWaitCursor(int nCode);
Parametreler
nCode
Bu parametre 1 ise, bir bekleme imleci görüntülenir. 0 ise, bekleme imleci başvuru sayısı artırılmadan geri yüklenir. -1 ise, bekleme imleci biter.
Açıklamalar
Varsayılan olarak bir kum saati imleci uygulanır. DoWaitCursor
bir başvuru sayısı tutar. Pozitif olduğunda kum saati imleci görüntülenir.
Normalde doğrudan çağırmazsanız DoWaitCursor
, bekleme imlecini değiştirmek veya bekleme imleci görüntülenirken ek işlem yapmak için bu üye işlevini geçersiz kılabilirsiniz.
Bekleme imlecini uygulamanın daha kolay ve daha kolay bir yolu için kullanın CWaitCursor
.
Örnek
// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor
// do some lengthy processing
Sleep(1000);
AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}
// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor
// do some lengthy processing
// The message box will normally change the cursor to
// the standard arrow cursor, and leave the cursor in
// as the standard arrow cursor when the message box is
// closed.
AfxMessageBox(_T("DoWaitCursor Sample"));
// Call DoWaitCursor with parameter 0 to restore
// the cursor back to the hourglass cursor.
AfxGetApp()->DoWaitCursor(0);
// do some more lengthy processing
Sleep(1000);
AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}
CWinApp::EnableD2DSupport
Visual Studio 2010 SP1 gereklidir.
Uygulama D2D desteğini etkinleştirir. Ana pencere başlatılmadan önce bu yöntemi çağırın.
BOOL EnableD2DSupport(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
Parametreler
d2dFactoryType
D2D fabrikasının iş parçacığı oluşturma modeli ve oluşturduğu kaynaklar.
writeFactoryType
Yazma fabrikası nesnesinin paylaşılıp paylaşılmayacağını veya yalıtılacağını belirten bir değer
Dönüş Değeri
D2D desteği etkinleştirildiyse TRUE döndürür, YANLIŞ - aksi takdirde
CWinApp::EnableHtmlHelp
Uygulamanızın yardımı için HTMLHelp kullanmak için türetilmiş sınıfınızın CWinApp
oluşturucusunun içinden bu üye işlevini çağırın.
void EnableHtmlHelp();
Açıklamalar
CWinApp::EnableShellOpen
Uygulamanızın kullanıcılarının Windows Dosya Yöneticisi'nin içinden dosyalara çift tıkladığında veri dosyalarını açmalarını sağlamak için genellikle geçersiz kılmanızdan InitInstance
bu işlevi çağırın.
void EnableShellOpen();
Açıklamalar
RegisterShellFileTypes
Üye işlevini bu işlevle birlikte çağırın veya bir sağlayın. Belge türlerinin el ile kaydı için uygulamanızla birlikte REG dosyası.
Örnek
// The following code fragment is from CMyApp::InitInstance.
// CMyApp is a CWinApp-derived class.
// enable file manager drag/drop and DDE Execute open
EnableShellOpen();
RegisterShellFileTypes();
CWinApp::EnableTaskbarInteraction
Görev çubuğu etkileşimlerini etkinleştirir.
BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);
Parametreler
bEnable
Windows 7 görev çubuğuyla etkileşimin etkin mi (TRUE) yoksa devre dışı mı (YANLIŞ) olacağını belirtir.
Dönüş Değeri
Görev çubuğu etkileşimi etkinleştirilebilir veya devre dışı bırakılabilirse TRUE döndürür.
Açıklamalar
Bu yöntem ana pencere oluşturulmadan önce çağrılmalıdır, aksi takdirde yanLIŞ onaylar ve döndürür.
CWinApp::ExitInstance
Uygulamanın bu örneğinden çıkmak için üye işlevinin içinden Run
çerçeve tarafından çağrılır.
virtual int ExitInstance();
Dönüş Değeri
Uygulamanın çıkış kodu; 0 hata olmadığını, 0'dan büyük değerler ise hata olduğunu gösterir. Bu değer, değerinden WinMain
dönüş değeri olarak kullanılır.
Açıklamalar
Bu üye işlevini üye işlevi dışında hiçbir yerden Run
çağırmayın.
Bu işlevin varsayılan uygulaması, uygulamanın uygulamasına çerçeve seçeneklerini yazar. INI dosyası. Uygulamanız sonlandırıldığında temizlemek için bu işlevi geçersiz kılın.
Örnek
int CMyApp::ExitInstance()
{
if (m_pMySampleMem)
delete m_pMySampleMem;
DoCleanup();
return CWinApp::ExitInstance();
}
CWinApp::GetApplicationRecoveryParameter
Uygulama kurtarma yöntemi için giriş parametresini alır.
virtual LPVOID GetApplicationRecoveryParameter();
Dönüş Değeri
Uygulama kurtarma yöntemi için varsayılan giriş parametresi.
Açıklamalar
Bu işlevin varsayılan davranışı NULL döndürür.
Daha fazla bilgi için bkz . CWinApp::ApplicationRecoveryCallback.
CWinApp::GetApplicationRecoveryPingInterval
Yeniden başlatma yöneticisinin kurtarma geri çağırma işlevinin döndürülmesini beklediği süreyi döndürür.
virtual DWORD GetApplicationRecoveryPingInterval();
Dönüş Değeri
Milisaniye cinsinden süre.
Açıklamalar
Yeniden başlatma yöneticisine kayıtlı bir uygulama beklenmedik bir şekilde çıktığında, uygulama açık belgeleri kaydetmeye çalışır ve kurtarma geri çağırma işlevini çağırır. Varsayılan kurtarma geri çağırma işlevi CWinApp::ApplicationRecoveryCallback'tir.
Çerçevenin kurtarma geri çağırma işlevinin döndürmesini beklediği süre ping aralığıdır. ping aralığını geçersiz kılarak CWinApp::GetApplicationRecoveryPingInterval
veya için RegisterWithRestartManager
özel bir değer sağlayarak özelleştirebilirsiniz.
CWinApp::GetApplicationRestartFlags
Yeniden başlatma yöneticisinin bayraklarını döndürür.
virtual DWORD GetApplicationRestartFlags();
Dönüş Değeri
Yeniden başlatma yöneticisinin bayrakları. Varsayılan uygulama 0 döndürür.
Açıklamalar
Yeniden başlatma yöneticisi bayraklarının varsayılan uygulamayla hiçbir etkisi yoktur. Bunlar gelecekte kullanılmak üzere sağlanır.
Uygulamayı yeniden başlatma yöneticisine kaydederken CWinApp::RegisterWithRestartManager kullanarak bayrakları ayarlarsınız.
Yeniden başlatma yöneticisi bayrakları için olası değerler aşağıdaki gibidir:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::GetAppRegistryKey
HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName anahtarını döndürür.
HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);
Parametreler
pTM
Nesne CAtlTransactionManager
işaretçisi.
Dönüş Değeri
İşlev başarılı olursa uygulama anahtarı; aksi takdirde NULL.
Açıklamalar
CWinApp::GetDataRecoveryHandler
Uygulamanın bu örneği için veri kurtarma işleyicisini alır.
virtual CDataRecoveryHandler *GetDataRecoveryHandler();
Dönüş Değeri
Uygulamanın bu örneği için veri kurtarma işleyicisi.
Açıklamalar
Yeniden başlatma yöneticisini kullanan her uygulama, CDataRecoveryHandler Sınıfının bir örneğine sahip olmalıdır. Bu sınıf, açık belgeleri izlemek ve dosyaları otomatik olarak kaydetmeden sorumludur. öğesinin CDataRecoveryHandler
davranışı, yeniden başlatma yöneticisinin yapılandırmasına bağlıdır. Daha fazla bilgi için bkz . CDataRecoveryHandler Sınıfı.
Bu yöntem, Windows Vista'dan önceki işletim sistemlerinde NULL döndürür. Yeniden başlatma yöneticisi Windows Vista'dan önceki işletim sistemlerinde desteklenmez.
Uygulamanın şu anda bir veri kurtarma işleyicisi yoksa, bu yöntem bir tane oluşturur ve buna bir işaretçi döndürür.
CWinApp::GetFirstDocTemplatePosition
Uygulamadaki ilk belge şablonunun konumunu alır.
POSITION GetFirstDocTemplatePosition() const;
Dönüş Değeri
Yineleme veya nesne işaretçisi alma için kullanılabilecek POSITION değeri; Liste boşsa NULL.
Açıklamalar
İlk CDocTemplate nesnesini almak için GetNextDocTemplate çağrısında döndürülen POSITION değerini kullanın.
CWinApp::GetHelpMode
Uygulama tarafından kullanılan yardım türünü alır.
AFX_HELP_TYPE GetHelpMode();
Dönüş Değeri
Uygulama tarafından kullanılan yardım türü. Daha fazla bilgi için bkz . CWinApp::m_eHelpType .
CWinApp::GetNextDocTemplate
Pos tarafından tanımlanan belge şablonunu alır, sonra pos değerini POSITION değerine ayarlar.
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
Parametreler
Pos
önceki bir veya GetFirstDocTemplatePosition çağrısı GetNextDocTemplate
tarafından döndürülen POSITION değerine başvuru. Değer, bu çağrı tarafından bir sonraki konuma güncelleştirilir.
Dönüş Değeri
CDocTemplate nesnesinin işaretçisi.
Açıklamalar
çağrısıyla GetFirstDocTemplatePosition
ilk konumu belirlerseniz, bir iletme yineleme döngüsünde kullanabilirsinizGetNextDocTemplate
.
POSITION değerinizin geçerli olduğundan emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.
Alınan belge şablonu kullanılabilir son şablonsa, pos'un yeni değeri NULL olarak ayarlanır.
CWinApp::GetPrinterDeviceDefaults
Yazdırma için bir yazıcı cihazı bağlamı hazırlamak için bu üye işlevini çağırın.
BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);
Parametreler
pPrintDlg
PRINTDLG yapısının işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Windows'tan geçerli yazıcı varsayılanlarını alır. INI dosyası gerektiği gibi veya Yazdırma Kurulumu'nda kullanıcı tarafından ayarlanan son yazıcı yapılandırmasını kullanır.
Örnek
void CMyApp::SetLandscapeMode()
{
PRINTDLG pd;
pd.lStructSize = (DWORD)sizeof(PRINTDLG);
BOOL bRet = GetPrinterDeviceDefaults(&pd);
if (bRet)
{
// protect memory handle with ::GlobalLock and ::GlobalUnlock
DEVMODE FAR *pDevMode = (DEVMODE FAR*)::GlobalLock(pd.hDevMode);
// set orientation to landscape
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
::GlobalUnlock(pd.hDevMode);
}
}
CWinApp::GetProfileBinary
Uygulamanın kayıt defterinin veya öğesinin belirtilen bölümündeki bir girdiden ikili verileri almak için bu üye işlevini çağırın. INI dosyası.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder.
lpszEntry
Değeri alınacak girdiyi içeren null olarak sonlandırılan bir dizeyi gösterir.
ppData
Verilerin adresini alacak bir işaretçiyi gösterir.
pBytes
Verilerin boyutunu (bayt cinsinden) alacak bir UINT'ye işaret eder.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu üye işlevi büyük/küçük harfe duyarlı olmadığından lpszSection ve lpszEntry parametrelerindeki dizeler büyük/küçük harfe göre farklılık gösterebilir.
Not
GetProfileBinary
bir arabellek ayırır ve * ppData içindeki adresini döndürür. Çağıran, delete [] kullanarak arabelleği boşaltmaktan sorumludur.
Önemli
Bu işlev tarafından döndürülen veriler NULL olarak sonlandırılmamalıdır ve çağıranın doğrulama gerçekleştirmesi gerekir. Daha fazla bilgi için bkz . Arabellek Taşmalarından Kaçınma.
Örnek
CWinApp* pApp = AfxGetApp();
const TCHAR* pszKey = _T("My Section");
struct complex {
double re, im;
} myData = { 1.4142, -0.5 };
// Write the information to the registry.
pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData,
sizeof(myData));
// Read the information from the registry.
complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData,
&n);
ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer
Ek bir örnek için bkz . CWinApp::WriteProfileBinary.
CWinApp::GetProfileInt
Uygulamanın kayıt defterinin veya öğesinin belirtilen bölümündeki bir girdiden tamsayı değerini almak için bu üye işlevini çağırın. INI dosyası.
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder.
lpszEntry
Değeri alınacak girdiyi içeren null olarak sonlandırılan bir dizeyi gösterir.
nDefault
Çerçeve girişi bulamazsa döndürülecek varsayılan değeri belirtir.
Dönüş Değeri
İşlev başarılı olursa belirtilen girdiyi izleyen dizenin tamsayı değeri. İşlev girişi bulamazsa, dönüş değeri nDefault parametresinin değeridir. Belirtilen girdiye karşılık gelen değer bir tamsayı değilse, dönüş değeri 0 olur.
Bu üye işlevi içindeki değer için onaltılık gösterimi destekler. INI dosyası. İmzalı bir tamsayı aldığınızda, değerini içine int
atamanız gerekir.
Açıklamalar
Bu üye işlevi büyük/küçük harfe duyarlı olmadığından lpszSection ve lpszEntry parametrelerindeki dizeler büyük/küçük harfe göre farklılık gösterebilir.
Önemli
Bu işlev tarafından döndürülen veriler NULL olarak sonlandırılmamalıdır ve çağıranın doğrulama gerçekleştirmesi gerekir. Daha fazla bilgi için bkz . Arabellek Taşmalarından Kaçınma.
Örnek
CWinApp *pApp = AfxGetApp();
const TCHAR *pszKey = _T("My Section");
const TCHAR *pszName = _T("Julian");
int iAge = 26;
// Write the information to the registry.
pApp->WriteProfileString(pszKey, _T("Name"), pszName);
pApp->WriteProfileInt(pszKey, _T("Age"), iAge);
// Read the information from the registry.
CString strName = pApp->GetProfileString(pszKey, _T("Name"));
int iAge2 = pApp->GetProfileInt(pszKey, _T("Age"), 0);
ASSERT(strName == pszName);
ASSERT(iAge2 == iAge);
Ek bir örnek için bkz . CWinApp::WriteProfileInt.
CWinApp::GetProfileString
Uygulamanın kayıt defterinde veya içinde belirtilen bölümde yer alan bir girişle ilişkili dizeyi almak için bu üye işlevini çağırın. INI dosyası.
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder.
lpszEntry
Dizesi alınacak olan girdiyi içeren null olarak sonlandırılan bir dizeyi gösterir. Bu değer NULL olmamalıdır.
lpszDefault
Giriş başlatma dosyasında bulunamazsa, verilen girdi için varsayılan dize değerini gösterir.
Dönüş Değeri
Dönüş değeri, uygulamanın dizesidir. Dize bulunamazsa INI dosyası veya lpszDefault . Çerçeve tarafından desteklenen en fazla dize uzunluğu _MAX_PATH. lpszDefault NULL ise, dönüş değeri boş bir dizedir.
Açıklamalar
Önemli
Bu işlev tarafından döndürülen veriler NULL olarak sonlandırılmamalıdır ve çağıranın doğrulama gerçekleştirmesi gerekir. Daha fazla bilgi için bkz . Arabellek Taşmalarından Kaçınma.
Örnek
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Başka bir örnek için CWinApp::GetProfileInt örneğine bakın.
CWinApp::GetSectionKey
HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection anahtarını döndürür.
HKEY GetSectionKey(
LPCTSTR lpszSection,
CAtlTransactionManager* pTM = NULL);
Parametreler
lpszSection
Elde edilecek anahtarın adı.
pTM
Nesne CAtlTransactionManager
işaretçisi.
Dönüş Değeri
İşlev başarılı olursa bölüm anahtarı; aksi takdirde NULL.
Açıklamalar
CWinApp::HideApplication
Açık belgeleri kapatmadan önce bir uygulamayı gizlemek için bu üye işlevini çağırın.
void HideApplication();
CWinApp::HtmlHelp
HTMLHelp uygulamasını çağırmak için bu üye işlevini çağırın.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parametreler
dwData
Ek verileri belirtir. Kullanılan değer nCmd parametresinin değerine bağlıdır. Varsayılan olarak 0x000F
HH_HELP_CONTEXT anlamına gelir.
nCmd
İstenen yardım türünü belirtir. Olası değerlerin listesi ve dwData parametresini nasıl etkiledikleri için Windows SDK'sında HtmlHelpW veya HtmlHelpA API işlevlerinde açıklanan uCommand parametresine bakın.
Açıklamalar
Çerçeve, HTMLHelp uygulamasını çağırmak için bu işlevi de çağırır.
Uygulamanız sonlandırıldığında çerçeve HTMLHelp uygulamasını otomatik olarak kapatır.
CWinApp::InitInstance
Windows, aynı programın birkaç kopyasının aynı anda çalışmasına izin verir.
virtual BOOL InitInstance();
Dönüş Değeri
Başlatma başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Uygulama başlatma kavramsal olarak iki bölüme ayrılır: program ilk kez çalıştırıldığında yapılan tek seferlik uygulama başlatma ve ilk kez de dahil olmak üzere programın bir kopyası her çalıştırıldığında çalıştırılan örnek başlatma. Çerçevenin WinMain
uygulaması bu işlevi çağırır.
Windows altında çalışan uygulamanızın her yeni örneğini başlatmak için geçersiz kılın InitInstance
. Genellikle, ana pencere nesnenizi oluşturmak için geçersiz kılar InitInstance
ve veri üyesini CWinThread::m_pMainWnd
bu pencereye işaret etmek üzere ayarlarsınız. Bu üye işlevini geçersiz kılma hakkında daha fazla bilgi için bkz . CWinApp: Uygulama Sınıfı.
Not
MFC uygulamaları tek iş parçacıklı daire (STA) olarak başlatılmalıdır. Geçersiz kılmanızda InitInstance
CoInitializeEx'i çağırırsanız COINIT_APARTMENTTHREADED (COINIT_MULTITHREADED değil) belirtin.
Örnek
// AppWizard implements the InitInstance overridable function
// according to options you select. For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.
BOOL CMFCListViewApp::InitInstance()
{
AfxSetAmbientActCtx(FALSE);
// Remainder of function definition omitted.
CWinApp::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(_T("OleInit failed."));
return FALSE;
}
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(4); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MFCListViewTYPE,
RUNTIME_CLASS(CMFCListViewDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyListView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
// call DragAcceptFiles only if there's a suffix
// In an MDI app, this should occur immediately after setting m_pMainWnd
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The main window has been initialized, so show and update it
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
CWinApp::IsTaskbarInteractionEnabled
Windows 7 Görev Çubuğu etkileşiminin etkinleştirilip etkinleştirilmediğini belirtir.
virtual BOOL IsTaskbarInteractionEnabled();
Dönüş Değeri
Çağrıldıysa EnableTaskbarInteraction
ve İşletim Sistemi Windows 7 veya üzeriyse TRUE döndürür.
Açıklamalar
Görev çubuğu etkileşimi, MDI uygulamasının MDI alt öğelerinin içeriğini, fare işaretçisi uygulama görev çubuğu düğmesinin üzerindeyken görüntülenen ayrı sekmeli küçük resimlerde görüntülediği anlamına gelir.
CWinApp::LoadCursor
geçerli yürütülebilir dosyadan lpszResourceName tarafından adlandırılan veya nIDResource tarafından belirtilen imleç kaynağını yükler.
HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const;
Parametreler
lpszResourceName
İmleç kaynağının adını içeren null ile sonlandırılan bir dizeyi gösterir. Bu bağımsız değişken için bir CString
kullanabilirsiniz.
nIDResource
İmleç kaynağının kimliği. Kaynakların listesi için bkz . Windows SDK'sında LoadCursor .
Dönüş Değeri
Başarılı olursa bir imleç tutamacı; aksi takdirde NULL.
Açıklamalar
LoadCursor
yalnızca daha önce yüklenmemişse imleci belleğe yükler; aksi takdirde, mevcut kaynağın tanıtıcısını alır.
Önceden tanımlanmış Windows imleçlerine erişmek için LoadStandardCursor veya LoadOEMCursor üye işlevini kullanın.
Örnek
HCURSOR hCursor;
// Load a cursor resource that was originally created using
// the Graphics Editor and assigned the i.d. IDC_MYCURSOR.
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);
CWinApp::LoadIcon
Yürütülebilir dosyadan lpszResourceName tarafından adlandırılan veya nIDResource tarafından belirtilen simge kaynağını yükler.
HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const;
Parametreler
lpszResourceName
Simge kaynağının adını içeren null olarak sonlandırılan bir dizeyi gösterir. Bu bağımsız değişken için de kullanabilirsiniz CString
.
nIDResource
Simge kaynağının kimlik numarası.
Dönüş Değeri
Başarılı olursa simgenin tutamacı; aksi takdirde NULL.
Açıklamalar
LoadIcon
simgeyi yalnızca daha önce yüklenmemişse yükler; aksi takdirde, mevcut kaynağın tanıtıcısını alır.
Önceden tanımlanmış Windows simgelerine erişmek için LoadStandardIcon veya LoadOEMIcon üye işlevini kullanabilirsiniz.
Not
Bu üye işlevi, yalnızca boyutu SM_CXICON ve SM_CYICON sistem ölçümü değerlerine uyan bir simge yükleyebilen Win32 API işlevi LoadIcon'ı çağırır.
CWinApp::LoadOEMCursor
nIDCursor tarafından belirtilen Önceden tanımlanmış Windows imleç kaynağını yükler.
HCURSOR LoadOEMCursor(UINT nIDCursor) const;
Parametreler
nIDCursor
Önceden tanımlanmış bir Windows imlecini belirten OCR_ bildirim sabit tanımlayıcısı. WINDOWS.H'deki OCR_ sabitlerine erişmek için daha önce #include \<afxwin.h>
sahip #define OEMRESOURCE
olmanız gerekir.
Dönüş Değeri
Başarılı olursa bir imleç tutamacı; aksi takdirde NULL.
Açıklamalar
LoadOEMCursor
Önceden tanımlanmış Windows imleçlerine erişmek için veya LoadStandardCursor üye işlevini kullanın.
Örnek
// In the stdafx.h file, add #define OEMRESOURCE to
// include the windows.h definitions of OCR_ values.
#define OEMRESOURCE
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
HCURSOR hCursor;
// Load the predefined WIndows "size all" cursor.
hCursor = AfxGetApp()->LoadOEMCursor(OCR_SIZEALL);
CWinApp::LoadOEMIcon
nIDIcon tarafından belirtilen Önceden tanımlanmış Windows simge kaynağını yükler.
HICON LoadOEMIcon(UINT nIDIcon) const;
Parametreler
nIDIcon
Önceden tanımlanmış bir Windows simgesini belirten OIC_ bildirim sabit tanımlayıcısı. WINDOWS.H'de OIC_ sabitlerine erişmek için daha önce #include \<afxwin.h>
sahip #define OEMRESOURCE
olmanız gerekir.
Dönüş Değeri
Başarılı olursa simgenin tutamacı; aksi takdirde NULL.
Açıklamalar
Önceden tanımlanmış Windows simgelerine LoadOEMIcon
erişmek için veya LoadStandardIcon üye işlevini kullanın.
CWinApp::LoadStandardCursor
lpszCursorName tarafından belirtilen önceden tanımlanmış Windows imleç kaynağını yükler.
HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;
Parametreler
lpszCursorName
Önceden tanımlanmış bir Windows imlecini belirten bir IDC_ bildirim sabit tanımlayıcısı. Bu tanımlayıcılar WINDOWS.H'de tanımlanır. Aşağıdaki listede lpszCursorName için önceden tanımlanmış olası değerler ve anlamlar gösterilmektedir:
standart ok imlecini IDC_ARROW
Standart metin ekleme imlecini IDC_IBEAM
Windows zaman alan bir görev gerçekleştirirken kullanılan kum saati imlecini IDC_WAIT
Seçim için çapraz imleç IDC_CROSS
IDC_UPARROW Yukarıyı gösteren ok
IDC_SIZE Eski ve desteklenmeyen; IDC_SIZEALL kullanma
IDC_SIZEALL Dört noktalı ok. Pencereyi yeniden boyutlandırmak için kullanılacak imleç.
IDC_ICON Eski ve desteklenmeyen. IDC_ARROW kullanın.
IDC_SIZENWSE Sol üst ve sağ altta uçları olan iki başlı ok
IDC_SIZENESW Sağ üst ve sol altta uçları olan iki başlı ok
yatay iki başlı oku IDC_SIZEWE
dikey iki başlı oku IDC_SIZENS
Dönüş Değeri
Başarılı olursa bir imleç tutamacı; aksi takdirde NULL.
Açıklamalar
LoadStandardCursor
Önceden tanımlanmış Windows imleçlerine erişmek için veya LoadOEMCursor üye işlevini kullanın.
Örnek
HCURSOR hCursor;
// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
CWinApp::LoadStandardIcon
lpszIconName tarafından belirtilen önceden tanımlanmış Windows simge kaynağını yükler.
HICON LoadStandardIcon(LPCTSTR lpszIconName) const;
Parametreler
lpszIconName
Önceden tanımlanmış bir Windows simgesini belirten bildirim sabiti tanımlayıcısı. Bu tanımlayıcılar WINDOWS.H'de tanımlanır. Önceden tanımlanmış olası değerlerin ve açıklamalarının listesi için Windows SDK'sında LoadIcon'daki lpIconName parametresine bakın.
Dönüş Değeri
Başarılı olursa simgenin tutamacı; aksi takdirde NULL.
Açıklamalar
Önceden tanımlanmış Windows simgelerine LoadStandardIcon
erişmek için veya LoadOEMIcon üye işlevini kullanın.
CWinApp::LoadStdProfileSettings
En son kullanılan (MRU) dosyalarının ve son önizleme durumunun listesini etkinleştirmek ve yüklemek için InitInstance üye işlevinin içinden bu üye işlevini çağırın.
void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
Parametreler
nMaxMRU
İzlenen son kullanılan dosyaların sayısı.
Açıklamalar
nMaxMRU 0 ise, MRU listesi korunmaz.
CWinApp::m_bHelpMode
Uygulama Yardım bağlam modundaysa (geleneksel olarak SHIFT + F1 ile çağrılır); aksi takdirde YANLIŞ.
BOOL m_bHelpMode;
Açıklamalar
Yardım bağlam modunda, imleç bir soru işaretine dönüşür ve kullanıcı bunu ekran hakkında taşıyabilir. Yardım modundayken özel işleme uygulamak istiyorsanız bu bayrağı inceleyin. m_bHelpMode
BOOL türünde bir ortak değişkendir.
CWinApp::m_dwRestartManagerSupportFlags
Yeniden başlatma yöneticisinin nasıl davranacağını belirleyen bayraklar.
DWORD m_dwRestartManagerSupportFlags;
Açıklamalar
Yeniden başlatma yöneticisini etkinleştirmek için istediğiniz davranışa ayarlayın m_dwRestartManagerSupportFlags
. Aşağıdaki tabloda kullanılabilir bayraklar gösterilmektedir.
Bayrak | Açıklama |
---|---|
AFX_RESTART_MANAGER_SUPPORT_RESTART | Uygulama CWinApp::RegisterWithRestartManager kullanılarak kaydedilir. Beklenmedik bir şekilde çıkılırsa yeniden başlatma yöneticisi uygulamanın yeniden başlatılmasından sorumludur. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY | Uygulama yeniden başlatma yöneticisine kaydedilir ve yeniden başlatma yöneticisi, uygulamayı yeniden başlattığınızda kurtarma geri çağırma işlevini çağırır. Varsayılan kurtarma geri çağırma işlevi CWinApp::ApplicationRecoveryCallback'tir. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART | Otomatik kaydetme etkinleştirilir ve uygulama yeniden başlatıldığında yeniden başlatma yöneticisi tüm açık belgeleri otomatik olarak denetler. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL | Otomatik kaydetme etkinleştirilir ve yeniden başlatma yöneticisi tüm açık belgeleri düzenli aralıklarla otomatik olarak denetler. Aralık CWinApp::m_nAutosaveInterval tarafından tanımlanır. |
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES | Uygulamayı beklenmeyen bir çıkıştan yeniden başlattıktan sonra yeniden başlatma yöneticisi daha önce açık belgeleri açar. CDataRecoveryHandler Sınıfı, açık belgelerin listesini depolamayı ve geri yüklemeyi işler. |
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES | Yeniden başlatma yöneticisi, uygulamayı yeniden başlattıktan sonra kullanıcıdan otomatik olarak kaydedilen dosyaları geri yüklemesini ister. CDataRecoveryHandler sınıfı kullanıcıyı sorgular. |
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE | AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER ve AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES birleşimi. |
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS | AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL ve AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES birleşimi. |
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS | AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES ve AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES birleşimi. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS | Birleşim ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES ve AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
CWinApp::m_eHelpType
Bu veri üyesinin türü, sınıfı içinde CWinApp
tanımlanan AFX_HELP_TYPE numaralandırılmış türdür.
AFX_HELP_TYPE m_eHelpType;
Açıklamalar
AFX_HELP_TYPE numaralandırması aşağıdaki gibi tanımlanır:
enum AFX_HELP_TYPE {
afxWinHelp = 0,
afxHTMLHelp = 1
};
Uygulamanın yardımını HTML Yardımı olarak ayarlamak için SetHelpMode'u çağırın ve belirtin
afxHTMLHelp
.Uygulamanın yardımını WinHelp olarak ayarlamak için öğesini çağırın
SetHelpMode
ve belirtinafxWinHelp
.
CWinApp::m_hInstance
Windows tarafından öğesine geçirilen hInstance parametresine WinMain
karşılık gelir.
HINSTANCE m_hInstance;
Açıklamalar
Veri m_hInstance
üyesi, Windows altında çalışan uygulamanın geçerli örneğinin tanıtıcısıdır. Bu, AfxGetInstanceHandle genel işlevi tarafından döndürülür. m_hInstance
HINSTANCE türünde bir genel değişkendir.
Örnek
// Typically you do not need to pass the application's hInstance
// to Windows APIs directly because there are equivalent MFC
// member functions that pass the hInstance for you. The following
// example is not typical:
HCURSOR hCursor;
hCursor = ::LoadCursor(AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(IDC_MYCURSOR));
// A more direct way to get the application's hInstance is to
// call AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDC_MYCURSOR));
// If you need the hInstance to load a resource, it is better
// to call AfxGetResourceHandle instead of AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDC_MYCURSOR));
// A better way to load the cursor resource is to call
// CWinApp::LoadCursor
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);
CWinApp::m_lpCmdLine
Windows tarafından öğesine geçirilen lpCmdLine parametresine WinMain
karşılık gelir.
LPTSTR m_lpCmdLine;
Açıklamalar
Uygulamanın komut satırını belirten null olarak sonlandırılan bir dizeye işaret eder. Kullanıcının uygulama başlatıldığında girdiği komut satırı bağımsız değişkenlerine erişmek için kullanın m_lpCmdLine
. m_lpCmdLine
LPTSTR türünde bir ortak değişkendir.
Örnek
if (m_lpCmdLine[0] == _T('\0'))
{
// Create a new (empty) document.
OnFileNew();
}
else
{
// Open a file passed as the first command line parameter.
OpenDocumentFile(m_lpCmdLine);
}
CWinApp::m_nAutosaveInterval
Otomatik tasdikler arasındaki milisaniye cinsinden süre.
int m_nAutosaveInterval;
Açıklamalar
Yeniden başlatma yöneticisini, açık belgeleri belirli aralıklarla otomatik olarak kaydetmek için yapılandırabilirsiniz. Uygulamanız dosyaları otomatik kaydetmezse, bu parametrenin hiçbir etkisi yoktur.
CWinApp::m_nCmdShow
Windows tarafından öğesine geçirilen nCmdShow parametresine WinMain
karşılık gelir.
int m_nCmdShow;
Açıklamalar
Uygulamanızın ana penceresi için CWnd::ShowWindow çağrısı yaparken bağımsız değişken olarak geçirmelisinizm_nCmdShow
. m_nCmdShow
türünde int
bir ortak değişkendir.
Örnek
// The following code fragment is taken from CMyApp::InitInstance.
// CMyApp is derived from CWinApp.
// The main window has been initialized, so show and update it
// using the nCmdShow parameter passed to the application when it
// was first launched.
// pMainFrame is the main MDI frame window of our app and is derived
// from CMDIFrameWnd.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
CWinApp::m_pActiveWnd
OLE sunucu uygulamanızın yerinde etkinleştirilmiş olduğu OLE kapsayıcı uygulamasının ana penceresine bir işaretçi depolamak için bu veri üyesini kullanın.
Açıklamalar
Bu veri üyesi NULL ise, uygulama yerinde etkin değildir.
Çerçeve penceresi bir OLE kapsayıcı uygulaması tarafından yerinde etkinleştirildiğinde çerçeve bu üye değişkenini ayarlar.
CWinApp::m_pDataRecoveryHandler
Uygulama için veri kurtarma işleyicisinin işaretçisi.
CDataRecoveryHandler* m_pDataRecoveryHandler;
Açıklamalar
Bir uygulamanın veri kurtarma işleyicisi açık belgeleri izler ve otomatik olarak açıklar. Çerçeve, uygulama beklenmedik şekilde çıktıktan sonra yeniden başlatıldığında otomatik kaydedilen dosyaları geri yüklemek için veri kurtarma işleyicisini kullanır. Daha fazla bilgi için bkz . CDataRecoveryHandler Sınıfı.
CWinApp::m_pszAppName
Uygulamanın adını belirtir.
LPCTSTR m_pszAppName;
Açıklamalar
Uygulama adı, CWinApp oluşturucusunun veya belirtilmezse AFX_IDS_APP_TITLE kimliğine sahip kaynak dizesine geçirilen parametreden gelebilir. Kaynakta uygulama adı bulunamazsa, programın .EXE dosya adından gelir.
AfxGetAppName genel işlevi tarafından döndürülür. m_pszAppName
const char türünde bir ortak değişkendir*.
Not
öğesine m_pszAppName
bir değer atarsanız, bu değerin yığında dinamik olarak ayrılması gerekir. YıkıcıCWinApp
, bu işaretçiyle free( ) öğesini çağırır. Ayırma işlemini gerçekleştirmek için ( ) çalışma zamanı kitaplığı işlevini kullanmak _tcsdup
istiyorsunuz. Ayrıca, yeni bir değer atamadan önce geçerli işaretçiyle ilişkili belleği serbest bırakın. Örneğin:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName = _tcsdup(_T("c:\\somedir\\myapp.exe"));
Örnek
CWnd *pWnd = AfxGetMainWnd();
// Set pWnd to some CWnd object whose window has already
// been created.
// The following call to CWnd::MessageBox uses the application
// title as the message box caption.
pWnd->MessageBox(_T("Some message"), AfxGetApp()->m_pszAppName);
// A more direct way to get the application title is to
// call AfxGetAppName:
pWnd->MessageBox(_T("Some message"), AfxGetAppName());
// An easier way to display a message box using the application
// title as the message box caption is to call AfxMessageBox:
AfxMessageBox(_T("Some message"));
CWinApp::m_pszExeName
Uzantı olmadan uygulamanın yürütülebilir dosyasının adını içerir.
LPCTSTR m_pszExeName;
Açıklamalar
m_pszAppName aksine, bu ad boşluk içeremez. m_pszExeName
const char türünde bir ortak değişkendir*.
Not
öğesine m_pszExeName
bir değer atarsanız, bu değerin yığında dinamik olarak ayrılması gerekir. YıkıcıCWinApp
, bu işaretçiyle free( ) öğesini çağırır. Ayırma işlemini gerçekleştirmek için ( ) çalışma zamanı kitaplığı işlevini kullanmak _tcsdup
istiyorsunuz. Ayrıca, yeni bir değer atamadan önce geçerli işaretçiyle ilişkili belleği serbest bırakın. Örneğin:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszExeName);
//Change the name of the .EXE file.
//The CWinApp destructor will free the memory.
m_pszExeName = _tcsdup(_T("c:\\somedir\\myapp"));
CWinApp::m_pszHelpFilePath
Uygulamanın Yardım dosyasının yolunu içerir.
LPCTSTR m_pszHelpFilePath;
Açıklamalar
Varsayılan olarak, çerçeve "ile uygulamanın adına başlatılır m_pszHelpFilePath
. HLP" eklenmiştir. Yardım dosyasının adını değiştirmek için, istenen yardım dosyasının tam adını içeren bir dizeye işaret etmek üzere ayarlayın m_pszHelpFilePath
. Bunu yapmak için uygun bir yer, uygulamanın InitInstance işlevindedir. m_pszHelpFilePath
const char türünde bir ortak değişkendir*.
Not
öğesine m_pszHelpFilePath
bir değer atarsanız, bu değerin yığında dinamik olarak ayrılması gerekir. YıkıcıCWinApp
, bu işaretçiyle free( ) öğesini çağırır. Ayırma işlemini gerçekleştirmek için ( ) çalışma zamanı kitaplığı işlevini kullanmak _tcsdup
istiyorsunuz. Ayrıca, yeni bir değer atamadan önce geçerli işaretçiyle ilişkili belleği serbest bırakın. Örneğin:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszHelpFilePath);
//Change the name of the .HLP file.
//The CWinApp destructor will free the memory.
m_pszHelpFilePath = _tcsdup(_T("c:\\somedir\\myhelp.hlp"));
CWinApp::m_pszProfileName
Uygulamanın adını içerir. INI dosyası.
LPCTSTR m_pszProfileName;
Açıklamalar
m_pszProfileName
const char türünde bir ortak değişkendir*.
Not
öğesine m_pszProfileName
bir değer atarsanız, bu değerin yığında dinamik olarak ayrılması gerekir. YıkıcıCWinApp
, bu işaretçiyle free( ) öğesini çağırır. Ayırma işlemini gerçekleştirmek için ( ) çalışma zamanı kitaplığı işlevini kullanmak _tcsdup
istiyorsunuz. Ayrıca, yeni bir değer atamadan önce geçerli işaretçiyle ilişkili belleği serbest bırakın. Örneğin:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszProfileName);
//Change the name of the .INI file.
//The CWinApp destructor will free the memory.
m_pszProfileName = _tcsdup(_T("c:\\somedir\\myini.ini"));
CWinApp::m_pszRegistryKey
Kayıt defteri veya INI dosyasında uygulama profili ayarlarının nerede depolandığını belirlemek için kullanılır.
LPCTSTR m_pszRegistryKey;
Açıklamalar
Normalde bu veri üyesi salt okunur olarak değerlendirilir.
- Değer bir kayıt defteri anahtarında depolanır. Uygulama profili ayarının adı şu kayıt defteri anahtarına eklenir: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.
öğesine m_pszRegistryKey
bir değer atarsanız, bu değerin yığında dinamik olarak ayrılması gerekir. YıkıcıCWinApp
, bu işaretçiyle free( ) öğesini çağırır. Ayırma işlemini gerçekleştirmek için ( ) çalışma zamanı kitaplığı işlevini kullanmak _tcsdup
istiyorsunuz. Ayrıca, yeni bir değer atamadan önce geçerli işaretçiyle ilişkili belleği serbest bırakın. Örneğin:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
_T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));
CWinApp::m_pszAppID
Uygulama Kullanıcı Modeli Kimliği.
LPCTSTR m_pszAppID;
Açıklamalar
CWinApp::OnContextHelp
Shift+F1 Yardımı'nı uygulama içinde işler.
afx_msg void OnContextHelp();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp )
deyim eklemeniz ve ayrıca genellikle SHIFT+F1 kısayol tablosu girdisi eklemeniz gerekir.
OnContextHelp
uygulamayı Yardım moduna alır. İmleç bir ok ve soru işaretine dönüşür ve kullanıcı fare işaretçisini hareket ettirebilir ve sol fare düğmesine basarak bir iletişim kutusu, pencere, menü veya komut düğmesi seçebilir. Bu üye işlevi, imlecin altındaki nesnenin Yardım bağlamını alır ve bu Yardım bağlamıyla Windows işlevi WinHelp'i çağırır.
CWinApp::OnDDECommand
Ana çerçeve penceresi bir DDE yürütme iletisi aldığında çerçeve tarafından çağrılır.
virtual BOOL OnDDECommand(LPTSTR lpszCommand);
Parametreler
lpszCommand
Uygulama tarafından alınan bir DDE komut dizesini gösterir.
Dönüş Değeri
Komut işlenirse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsayılan uygulama, komutun bir belgeyi açma isteği olup olmadığını denetler ve varsa, belirtilen belgeyi açar. Kullanıcı bir veri dosyasına çift tıkladığında Windows Dosya Yöneticisi genellikle bu tür DDE komut dizelerini gönderir. Yazdırılacak komut gibi diğer DDE yürütme komutlarını işlemek için bu işlevi geçersiz kılın.
Örnek
BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
if (CWinApp::OnDDECommand(lpszCommand))
return TRUE;
// Handle any DDE commands recognized by your application
// and return TRUE. See implementation of CWinApp::OnDDEComand
// for example of parsing the DDE command string.
// Return FALSE for any DDE commands you do not handle.
return FALSE;
}
CWinApp::OnFileNew
ID_FILE_NEW komutunu uygular.
afx_msg void OnFileNew();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_FILE_NEW, OnFileNew )
deyim eklemeniz gerekir. Etkinleştirilirse, bu işlev Dosya Yeni komutunun yürütülmesini işler.
Varsayılan davranış hakkında bilgi ve bu üye işlevini geçersiz kılma yönergeleri için bkz . Teknik Not 22 .
Örnek
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnFileOpen
ID_FILE_OPEN komutunu uygular.
afx_msg void OnFileOpen();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_FILE_OPEN, OnFileOpen )
deyim eklemeniz gerekir. Etkinleştirilirse, bu işlev Dosya Aç komutunun yürütülmesini işler.
Varsayılan davranış hakkında bilgi ve bu üye işlevini geçersiz kılma yönergeleri için bkz . Teknik Not 22.
Örnek
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnFilePrintSetup
ID_FILE_PRINT_SETUP komutunu uygular.
afx_msg void OnFilePrintSetup();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )
deyim eklemeniz gerekir. Etkinleştirilirse, bu işlev Dosya Yazdır komutunun yürütülmesini işler.
Varsayılan davranış hakkında bilgi ve bu üye işlevini geçersiz kılma yönergeleri için bkz . Teknik Not 22.
Örnek
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnHelp
Uygulama içinde F1 Yardımı'nı işler (geçerli bağlamı kullanarak).
afx_msg void OnHelp();
Açıklamalar
Genellikle F1 anahtarı için bir hızlandırıcı anahtarı girişi de eklersiniz. F1 anahtarının etkinleştirilmesi yalnızca bir kuraldır, bir gereksinim değildir.
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_HELP, OnHelp )
deyim eklemeniz gerekir. Etkinleştirilirse, kullanıcı F1 tuşuna bastığında çerçeve tarafından çağrılır.
Bu ileti işleyici işlevinin varsayılan uygulaması geçerli pencereye, iletişim kutusuna veya menü öğesine karşılık gelen Yardım bağlamını belirler ve ardından WINHELP.EXE çağırır. Şu anda kullanılabilir bağlam yoksa işlev varsayılan bağlamı kullanır.
Yardım bağlamını şu anda odakta olan pencere, iletişim kutusu, menü öğesi veya araç çubuğu düğmesi dışında bir değere ayarlamak için bu üye işlevini geçersiz kılın. İstenen Yardım bağlam kimliğiyle çağrısı WinHelp
yapın.
CWinApp::OnHelpFinder
ID_HELP_FINDER ve ID_DEFAULT_HELP komutlarını işler.
afx_msg void OnHelpFinder();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )
deyim eklemeniz gerekir. Etkinleştirilirse, uygulamanızın kullanıcısı standart HELP_FINDER konu başlığıyla çağırmak WinHelp
üzere Yardım Bulucu komutunu seçtiğinde çerçeve bu ileti işleyici işlevini çağırır.
CWinApp::OnHelpIndex
ID_HELP_INDEX komutunu işler ve varsayılan bir Yardım konusu sağlar.
afx_msg void OnHelpIndex();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )
deyim eklemeniz gerekir. Etkinleştirilirse, uygulamanızın kullanıcısı standart HELP_INDEX konu başlığıyla çağırmak WinHelp
üzere Yardım Dizini komutunu seçtiğinde çerçeve bu ileti işleyici işlevini çağırır.
CWinApp::OnHelpUsing
ID_HELP_USING komutunu işler.
afx_msg void OnHelpUsing();
Açıklamalar
Bu üye işlevini etkinleştirmek için sınıf ileti eşlemenize CWinApp
bir ON_COMMAND( ID_HELP_USING, OnHelpUsing )
deyim eklemeniz gerekir. Uygulamanızın kullanıcısı uygulamayı standart HELP_HELPONHELP konu başlığıyla çağırmak için Yardım Kullanma komutunu seçtiğinde WinHelp
çerçeve bu ileti işleyici işlevini çağırır.
CWinApp::OnIdle
Boşta kalma süresi işleme gerçekleştirmek için bu üye işlevini geçersiz kılın.
virtual BOOL OnIdle(LONG lCount);
Parametreler
lCount
Uygulamanın ileti kuyruğu boş olduğunda her seferinde OnIdle
artırılan bir sayaç çağrılır. Bu sayı, her yeni ileti işlendiğinde 0 olarak sıfırlanır. Uygulamanın bir iletiyi işlemeden boşta kalma süresinin göreli uzunluğunu belirlemek için lCount parametresini kullanabilirsiniz.
Dönüş Değeri
Daha fazla boşta işlem süresi almak için sıfır olmayan; Daha fazla boşta kalma süresi gerekmiyorsa 0.
Açıklamalar
OnIdle
, uygulamanın ileti kuyruğu boş olduğunda varsayılan ileti döngüsünde çağrılır. Kendi arka plan boşta işleyici görevlerinizi çağırmak için geçersiz kılmanızı kullanın.
OnIdle
boşta işlem süresinin gerekli olmadığını belirtmek için 0 döndürmelidir. lCount parametresi, ileti kuyruğu boş olduğunda her OnIdle
çağrıldığında artırılır ve her yeni ileti işlendiğinde 0'a sıfırlanır. Bu sayıya göre farklı boşta yordamlarınızı çağırabilirsiniz.
Aşağıda boşta döngü işleme özetlemektedir:
Microsoft Foundation Sınıf Kitaplığı'ndaki ileti döngüsü ileti sırasını denetler ve bekleyen ileti bulmazsa, uygulama nesnesini çağırır
OnIdle
ve lCount bağımsız değişkeni olarak 0 sağlar.OnIdle
bazı işlemler gerçekleştirir ve daha fazla işlem yapmak için yeniden çağrılması gerektiğini belirtmek için sıfır olmayan bir değer döndürür.İleti döngüsü, ileti sırasını yeniden denetler. Bekleyen ileti yoksa, lCount bağımsız değişkenini artırarak yeniden çağırır
OnIdle
.Sonunda,
OnIdle
tüm boşta kalan görevlerini işlemeyi tamamlar ve 0 döndürür. Bu, ileti döngüsüne, ileti kuyruğundan bir sonraki ileti alınana kadar çağrıyıOnIdle
durdurmasını bildirir. Bu noktada boşta kalma döngüsü, bağımsız değişken 0 olarak ayarlandığında yeniden başlatılır.
Uygulamanız döndürülene kadar OnIdle
kullanıcı girişini işleyemediği için işlemi sırasında OnIdle
uzun görevler gerçekleştirmeyin.
Not
Güncelleştirmelerin OnIdle
varsayılan uygulaması, menü öğeleri ve araç çubuğu düğmeleri gibi kullanıcı arabirimi nesnelerini komuta eder ve iç veri yapısı temizleme gerçekleştirir. Bu nedenle, geçersiz kılarsanız OnIdle
geçersiz kılınan sürümde ile lCount
çağrısında CWinApp::OnIdle
bulunması gerekir. İlk olarak tüm temel sınıf boşta işlemesini çağırın (yani, temel sınıf OnIdle
0 döndürene kadar). Temel sınıf işleme tamamlanmadan önce iş gerçekleştirmeniz gerekiyorsa, çalışmanızı yapmak için uygun lCount'ı seçmek için temel sınıf uygulamasını gözden geçirin.
İleti kuyruğundan her ileti alındığında çağrılmasını istemiyorsanızOnIdle
, CWinThreadIsIdleMessage'ı geçersiz kılabilirsiniz. Bir uygulama çok kısa bir süreölçer ayarlamışsa veya sistem WM_SYSTIMER iletisini gönderiyorsa, OnIdle
tekrar tekrar çağrılır ve performansı düşürür.
Örnek
Aşağıdaki iki örnekte nasıl kullanılacağı OnIdle
gösterilmektedir. İlk örnek, görevleri önceliklendirmek için lCount bağımsız değişkenini kullanarak iki boşta kalan görevi işler. İlk görev yüksek önceliklidir ve mümkün olduğunda bunu yapmanız gerekir. İkinci görev daha az önemlidir ve yalnızca kullanıcı girişinde uzun bir duraklama olduğunda yapılmalıdır. temel sınıf sürümüne OnIdle
yapılan çağrıyı not edin. İkinci örnek, farklı önceliklere sahip bir grup boşta görev yönetir.
BOOL CMyApp::OnIdle(LONG lCount)
{
BOOL bMore = CWinApp::OnIdle(lCount);
if (lCount == 0)
{
TRACE(_T("App idle for short period of time\n"));
bMore = TRUE;
}
else if (lCount == 10)
{
TRACE(_T("App idle for longer amount of time\n"));
bMore = TRUE;
}
else if (lCount == 100)
{
TRACE(_T("App idle for even longer amount of time\n"));
bMore = TRUE;
}
else if (lCount == 1000)
{
TRACE(_T("App idle for quite a long period of time\n"));
// bMore is not set to TRUE, no longer need idle
// IMPORTANT: bMore is not set to FALSE since CWinApp::OnIdle may
// have more idle tasks to complete.
}
return bMore;
// return TRUE as long as there are any more idle tasks
}
CWinApp::OpenDocumentFile
Çerçeve, uygulamanın adlandırılmış CDocument dosyasını açmak için bu yöntemi çağırır.
virtual CDocument* OpenDocumentFile(
LPCTSTR lpszFileName
BOOL bAddToMRU = TRUE);
Parametreler
lpszFileName
[in] Açılacak dosyanın adı.
bAddToMRU
[in] DOĞRU, belgenin en son dosyalardan biri olduğunu gösterir; YANLIŞ, belgenin en son dosyalardan biri olmadığını gösterir.
Dönüş Değeri
Başarılı olursa işaretçi CDocument
; aksi takdirde NULL.
Açıklamalar
Bu ada sahip bir belge zaten açıksa, bu belgeyi içeren ilk çerçeve penceresi odağı alır. Bir uygulama birden çok belge şablonunu destekliyorsa, çerçeve, belgeyi yüklemeyi denemek için uygun belge şablonunu bulmak için dosya adı uzantısını kullanır. Başarılı olursa, belge şablonu belge için bir çerçeve penceresi ve görünüm oluşturur.
Örnek
if (m_lpCmdLine[0] == _T('\0'))
{
// Create a new (empty) document.
OnFileNew();
}
else
{
// Open a file passed as the first command line parameter.
OpenDocumentFile(m_lpCmdLine);
}
CWinApp::P arseCommandLine
Komut satırını ayrıştırmak ve parametreleri birer birer CCommandLineInfo::P arseParam'a göndermek için bu üye işlevini çağırın.
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
Parametreler
rCmdInfo
CCommandLineInfo nesnesine başvuru.
Açıklamalar
Uygulama Sihirbazı'nı kullanarak yeni bir MFC projesi başlattığınızda, Uygulama Sihirbazı yerel bir örneği CCommandLineInfo
oluşturur ve ardından Ve'yi ParseCommandLine
InitInstance üye işlevinde çağırırProcessShellCommand
. Komut satırı aşağıda açıklanan yolu izler:
içinde
InitInstance
CCommandLineInfo
oluşturulduktan sonra nesnesi öğesineParseCommandLine
geçirilir.ParseCommandLine
ardından her parametre için bir kez tekrar tekrar çağırırCCommandLineInfo::ParseParam
.ParseParam
CCommandLineInfo
nesnesini doldurur. Bu işlem daha sonra ProcessShellCommand'a geçirilir.ProcessShellCommand
komut satırı bağımsız değişkenlerini ve bayraklarını işler.
Gerektiğinde doğrudan çağırabileceğinizi ParseCommandLine
unutmayın.
Komut satırı bayraklarının açıklaması için bkz . CCommandLineInfo::m_nShellCommand.
CWinApp::P reTranslateMessage
Windows işlevleri TranslateMessage ve DispatchMessage'a sevk edilmeden önce pencere iletilerini filtrelemek için bu işlevi geçersiz kıl Varsayılan uygulama hızlandırıcı anahtarı çevirisi gerçekleştirir, bu nedenle geçersiz kılınan sürümde üye işlevini çağırmanız CWinApp::PreTranslateMessage
gerekir.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametreler
pMsg
İşlenmek üzere iletiyi içeren bir MSG yapısının işaretçisi.
Dönüş Değeri
İleti içinde tam olarak işlendiyse PreTranslateMessage
ve daha fazla işlenmemesi gerekiyorsa sıfır olmayan. İletinin normal şekilde işlenmesi gerekiyorsa sıfır.
CWinApp::P rocessMessageFilter
Çerçevenin kanca işlevi, belirli Windows iletilerini filtrelemek ve yanıtlamak için bu üye işlevini çağırır.
virtual BOOL ProcessMessageFilter(
int code,
LPMSG lpMsg);
Parametreler
kod
Bir kanca kodu belirtir. Bu üye işlevi, lpMsg'nin nasıl işleneceğini belirlemek için kodu kullanır.
lpMsg
Windows MSGtructure işaretçisi.
Dönüş Değeri
İleti işlenirse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Kanca işlevi, olayları uygulamanın normal ileti işlemesine gönderilmeden önce işler.
Bu gelişmiş özelliği geçersiz kılarsanız, çerçevenin kanca işlemesini korumak için temel sınıf sürümünü çağırdığınızdan emin olun.
CWinApp::P rocessShellCommand
Bu üye işlevi, rCmdInfo tarafından tanımlanan nesneden CCommandLineInfo
geçirilen parametreleri kabul etmek ve belirtilen eylemi gerçekleştirmek için InitInstance tarafından çağrılır.
BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);
Parametreler
rCmdInfo
CCommandLineInfo nesnesine başvuru.
Dönüş Değeri
Kabuk komutu başarıyla işlenirse sıfır olmayan. 0 ise InitInstance'tan FALSE değerini döndür.
Açıklamalar
Uygulama Sihirbazı'nı kullanarak yeni bir MFC projesi başlattığınızda, Uygulama Sihirbazı yerel bir örneği CCommandLineInfo
oluşturur ve ardından üye işlevinde ve ParseCommandLine'ı InitInstance
çağırırProcessShellCommand
. Komut satırı aşağıda açıklanan yolu izler:
içinde
InitInstance
CCommandLineInfo
oluşturulduktan sonra nesnesi öğesineParseCommandLine
geçirilir.ParseCommandLine
ardından CCommandLineInfo::P arseParam'ı her parametre için bir kez tekrar tekrar çağırır.ParseParam
CCommandLineInfo
nesnesini doldurur ve nesnesineProcessShellCommand
geçirilir.ProcessShellCommand
komut satırı bağımsız değişkenlerini ve bayraklarını işler.
CCommandLineInfo::m_nShellCommand tarafından tanımlanan nesnesinin veri üyeleriCCommandLineInfo
, sınıfı içinde CCommandLineInfo
tanımlanan aşağıdaki numaralandırılmış türdedir.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE
};
Bu değerlerin her birinin kısa bir açıklaması için bkz CCommandLineInfo::m_nShellCommand
. .
CWinApp::P rocessWndProcException
İşleyici, uygulamanızın ileti veya komut işleyicilerinden birinde oluşan bir özel durumu yakalamadığı her durumda çerçeve bu üye işlevini çağırır.
virtual LRESULT ProcessWndProcException(
CException* e,
const MSG* pMsg);
Parametreler
e
Yakalanmamış özel duruma yönelik bir işaretçi.
pMsg
Çerçevenin özel durum oluşturmasına neden olan Windows iletisi hakkında bilgi içeren bir MSGtructure.
Dönüş Değeri
Windows'a döndürülmesi gereken değer. Normalde bu, Windows iletileri için 0L, komut iletileri için 1L (TRUE) şeklindedir.
Açıklamalar
Bu üye işlevini doğrudan çağırmayın.
Bu üye işlevinin varsayılan uygulaması bir ileti kutusu oluşturur. Yakalanmayan özel durum bir menü, araç çubuğu veya hızlandırıcı komut hatasıyla kaynaklanıyorsa, ileti kutusunda "Komut başarısız oldu" iletisi görüntülenir; aksi takdirde, bir "İç uygulama hatası" iletisi görüntüler.
Özel durumlarınızın genel olarak işlenmesini sağlamak için bu üye işlevini geçersiz kılın. Yalnızca ileti kutusunun görüntülenmesini istiyorsanız temel işlevselliği çağırın.
CWinApp::Register
tarafından RegisterShellFileTypes
işlenmeyen kayıt görevlerini gerçekleştirir.
virtual BOOL Register();
Dönüş Değeri
Başarıda sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsayılan uygulama yalnızca TRUE döndürür. Özelleştirilmiş kayıt adımlarını sağlamak için bu işlevi geçersiz kılın.
CWinApp::RegisterShellFileTypes
Uygulamanızın tüm belge türlerini Windows Dosya Yöneticisi'ne kaydetmek için bu üye işlevini çağırın.
void RegisterShellFileTypes(BOOL bCompat = FALSE);
Parametreler
bCompat
[in] TRUE, yazdırma ve yazdırma için kabuk komutları için kayıt girdileri ekler ve kullanıcının dosyaları doğrudan kabuktan veya dosyayı bir yazıcı nesnesine sürükleyerek yazdırmasına olanak tanır. Ayrıca bir DefaultIcon anahtarı ekler. Bu parametre varsayılan olarak geriye dönük uyumluluk için YANLIŞ'tır.
Açıklamalar
Bu, kullanıcının Dosya Yöneticisi'nin içinden uygulamanız tarafından oluşturulan bir veri dosyasını çift tıklayarak açmasına olanak tanır. Uygulamanızdaki belge şablonlarının her biri için AddDocTemplate çağrısı yaptıktan sonra çağırınRegisterShellFileTypes
. Ayrıca çağırdığınızda EnableShellOpen üye işlevini çağırın RegisterShellFileTypes
.
RegisterShellFileTypes
uygulamanın koruduğu CDocTemplate nesneleri listesinde yinelenir ve her belge şablonu için Windows'un dosya ilişkilendirmeleri için koruduğu kayıt veritabanına girdiler ekler. Dosya Yöneticisi, kullanıcı dosyaya çift tıkladığında veri dosyasını açmak için bu girdileri kullanır. Bu, bir gönderme gereksinimini ortadan kaldırır. Uygulamanızla birlikte REG dosyası.
Not
RegisterShellFileTypes
yalnızca kullanıcı programı yönetici haklarıyla çalıştırıyorsa çalışır. Programın yönetici hakları yoksa, kayıt defteri anahtarlarını değiştiremez.
Kayıt veritabanı zaten belirli bir dosya adı uzantısını başka bir dosya türüyle ilişkilendiriyorsa, yeni bir ilişkilendirme oluşturulmaz. CDocTemplate
Bu bilgileri kaydetmek için gereken dizelerin biçimi için sınıfına bakın.
CWinApp::RegisterWithRestartManager
Uygulamayı yeniden başlatma yöneticisine kaydeder.
virtual HRESULT RegisterWithRestartManager(
BOOL bRegisterRecoveryCallback,
const CString& strRestartIdentifier);
virtual HRESULT RegisterWithRestartManager(
LPCWSTR pwzCommandLineArgs,
DWORD dwRestartFlags,
APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
LPVOID lpvParam,
DWORD dwPingInterval,
DWORD dwCallbackFlags);
Parametreler
bRegisterRecoveryCallback
[in] TRUE, uygulamanın bu örneğinin bir kurtarma geri çağırma işlevi kullandığını gösterir; YANLIŞ, olmadığını gösterir. Uygulama beklenmedik şekilde çıktığında çerçeve kurtarma geri çağırma işlevini çağırır. Daha fazla bilgi için bkz . CWinApp::ApplicationRecoveryCallback.
strRestartIdentifier
[in] Yeniden başlatma yöneticisinin bu örneğini tanımlayan benzersiz dize. Yeniden başlatma yöneticisi tanımlayıcısı, bir uygulamanın her örneği için benzersizdir.
pwzCommandLineArgs
[in] Komut satırından ek bağımsız değişkenler içeren bir dize.
dwRestartFlags
[in] Yeniden başlatma yöneticisi için isteğe bağlı bayraklar. Daha fazla bilgi için Açıklamalar bölümüne bakın.
pRecoveryCallback
[in] Kurtarma geri çağırma işlevi. Bu işlevin giriş olarak bir LPVOID parametresi alması ve DWORD döndürmesi gerekir. Varsayılan kurtarma geri çağırma işlevidir CWinApp::ApplicationRecoveryCallback
.
lpvParam
[in] Kurtarma geri çağırma işlevinin giriş parametresi. Daha fazla bilgi için bkz . CWinApp::ApplicationRecoveryCallback.
dwPingInterval
[in] Yeniden başlatma yöneticisinin kurtarma geri çağırma işlevinin döndürülmesini beklediği süre. Bu parametre milisaniye cinsindendir.
dwCallbackFlags
[in] Kurtarma geri çağırma işlevine geçirilen bayraklar. Daha sonraki kullanımlar için ayrılmıştır.
Dönüş Değeri
Yöntemin başarılı olup olmadığını S_OK; aksi takdirde bir hata kodu.
Açıklamalar
Uygulamanız dosyaları otomatik kaydetme için varsayılan MFC uygulamasını kullanıyorsa, basit sürümünü RegisterWithRestartManager
kullanmanız gerekir. Uygulamanızın otomatik kaydetme davranışını özelleştirmek istiyorsanız karmaşık sürümünü RegisterWithRestartManager
kullanın.
Bu yöntemi strRestartIdentifier için boş bir dizeyle çağırırsanız, RegisterWithRestartManager
yeniden başlatma yöneticisinin bu örneği için benzersiz bir tanımlayıcı dizesi oluşturur.
Bir uygulama beklenmedik şekilde çıktığında, yeniden başlatma yöneticisi uygulamayı komut satırından yeniden başlatır ve isteğe bağlı bağımsız değişken olarak benzersiz yeniden başlatma tanımlayıcısını sağlar. Bu senaryoda, çerçeve iki kez çağırır RegisterWithRestartManager
. İlk çağrı, dize tanımlayıcısı için boş bir dize ile CWinApp::InitInstance'tan gelir. Ardından CWinApp::P rocessShellCommand yöntemi benzersiz yeniden başlatma tanımlayıcısı ile çağrılarRegisterWithRestartManager
.
Uygulamayı yeniden başlatma yöneticisine kaydettikten sonra, yeniden başlatma yöneticisi uygulamayı izler. Uygulama beklenmedik şekilde çıkarsa, yeniden başlatma yöneticisi kapatma işlemi sırasında kurtarma geri çağırma işlevini çağırır. Yeniden başlatma yöneticisi, kurtarma geri çağırma işlevinden bir yanıt için dwPingInterval'ı bekler. Kurtarma geri çağırma işlevi bu süre içinde yanıt vermezse, uygulama kurtarma geri çağırma işlevini yürütmeden çıkar.
Varsayılan olarak, dwRestartFlags desteklenmez ancak gelecekte kullanılmak üzere sağlanır. dwRestartFlags için olası değerler aşağıdaki gibidir:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::ReopenPreviousFilesAtRestart
Uygulamadan beklenmedik bir şekilde çıkıldığında yeniden başlatma yöneticisinin açık olan dosyaları yeniden açıp açmayacağını belirler.
virtual BOOL ReopenPreviousFilesAtRestart() const;
Dönüş Değeri
TRUE, yeniden başlatma yöneticisinin daha önce açık olan dosyaları yeniden açtığını gösterir; YANLIŞ, yeniden başlatma yöneticisinin olmadığını gösterir.
CWinApp::RestartInstance
Yeniden başlatma yöneticisi tarafından başlatılan bir uygulama yeniden başlatma işlemini işler.
virtual BOOL CWinApp::RestartInstance();
Dönüş Değeri
Veri kurtarma işleyicisi daha önce açık belgeleri açarsa TRUE; Veri kurtarma işleyicisinde hata varsa veya daha önce açık belge yoksa YANLIŞ.
Açıklamalar
Yeniden başlatma yöneticisi bir uygulamayı yeniden başlattığınızda, çerçeve bu yöntemi çağırır. Bu yöntem, veri kurtarma işleyicisini alır ve otomatik olarak kaydedilen dosyaları geri yükler. Bu yöntem, kullanıcının otomatik kaydedilen dosyaları geri yüklemek isteyip istemediğini belirlemek için CDataRecoveryHandler::RestoreAutosavedDocuments'ı çağırır.
CDataRecoveryHandler açık belge olmadığını belirlerse bu yöntem YANLIŞ döndürür. Açık belge yoksa, uygulama normalde başlar.
CWinApp::RestoreAutosavedFilesAtRestart
Uygulamayı yeniden başlatırken yeniden başlatma yöneticisinin otomatik olarak kaydedilen dosyaları geri yükleyip geri yüklemediğini belirler.
virtual BOOL RestoreAutosavedFilesAtRestart() const;
Dönüş Değeri
TRUE, yeniden başlatma yöneticisinin otomatik kaydedilen dosyaları geri yüklediğini gösterir; YANLIŞ, yeniden başlatma yöneticisinin olmadığını gösterir.
CWinApp::Run
Varsayılan bir ileti döngüsü sağlar.
virtual int Run();
Dönüş Değeri
int
tarafından WinMain
döndürülen bir değer.
Açıklamalar
Run
uygulama bir WM_QUIT iletisi alana kadar Windows iletilerini alır ve dağıtıyor. Uygulamanın ileti kuyruğu şu anda ileti içermiyorsa, Run
boşta kalma süresi işleme gerçekleştirmek için OnIdle'ı çağırır. Gelen iletiler özel işlem için PreTranslateMessage üye işlevine ve ardından standart klavye çevirisi için Windows işlevine TranslateMessage
gider; son olarak Windows DispatchMessage
işlevi çağrılır.
Run
nadiren geçersiz kılınabilir, ancak özel davranış sağlamak için geçersiz kılabilirsiniz.
CWinApp::RunAutomated
Sunucu uygulamasının bir istemci uygulaması tarafından başlatılıp başlatılmadığını gösteren " /Automation" veya " -Automation" seçeneğinin mevcut olup olmadığını belirlemek için bu işlevi çağırın.
BOOL RunAutomated();
Dönüş Değeri
Seçenek bulunduysa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsa, seçenek komut satırından kaldırılır. OLE Otomasyonu hakkında daha fazla bilgi için Otomasyon Sunucuları makalesine bakın.
CWinApp::RunEmbedded
Sunucu uygulamasının bir istemci uygulaması tarafından başlatılıp başlatılmadığını gösteren " /Embedding" veya " -Embedding" seçeneğinin mevcut olup olmadığını belirlemek için bu işlevi çağırın.
BOOL RunEmbedded();
Dönüş Değeri
Seçenek bulunduysa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsa, seçenek komut satırından kaldırılır. Ekleme hakkında daha fazla bilgi için Sunucular: Sunucu Uygulama makalesine bakın.
CWinApp::SaveAllModified
Uygulamanın ana çerçeve penceresi kapatılacağı zaman veya bir WM_QUERYENDSESSION iletisi aracılığıyla tüm belgeleri kaydetmek için çerçeve tarafından çağrılır.
virtual BOOL SaveAllModified();
Dönüş Değeri
Uygulamayı sonlandırmak güvenliyse sıfır olmayan; Uygulamayı sonlandırmak güvenli değilse 0.
Açıklamalar
Bu üye işlevinin varsayılan uygulaması, uygulamadaki değiştirilmiş tüm belgeler için sırayla CDocument::SaveModified üye işlevini çağırır.
CWinApp::SelectPrinter
Belirli bir yazıcıyı seçmek için bu üye işlevini çağırın ve Yazdır İletişim Kutusunda daha önce seçili olan yazıcıyı serbest bırakın.
void SelectPrinter(
HANDLE hDevNames,
HANDLE hDevMode,
BOOL bFreeOld = TRUE);
Parametreler
hDevNames
Belirli bir yazıcının sürücü, cihaz ve çıkış bağlantı noktası adlarını tanımlayan DEVNAMEStructure tanıtıcısı.
hDevMode
Bir yazıcının cihaz başlatma ve ortamı hakkındaki bilgileri belirten DEVMODE yapısının tanıtıcısı.
bFreeOld
Önceden seçilen yazıcıyı serbest bırakın.
Açıklamalar
Hem hDevMode hem de hDevNames NULL ise, SelectPrinter
geçerli varsayılan yazıcıyı kullanır.
CWinApp::SetHelpMode
Uygulamanın yardım türünü ayarlar.
void SetHelpMode(AFX_HELP_TYPE eHelpType);
Parametreler
eHelpType
Kullanılacak yardım türünü belirtir. Daha fazla bilgi için bkz . CWinApp::m_eHelpType .
Açıklamalar
Uygulamanın Yardım türünü ayarlar.
Uygulamanızın Yardım türünü HTMLHelp olarak ayarlamak için EnableHTMLHelp'i çağırabilirsiniz. çağrısı EnableHTMLHelp
yaptıktan sonra, uygulamanızın yardım uygulaması olarak HTMLHelp kullanması gerekir. WinHelp'i kullanacak şekilde değiştirmek istiyorsanız, eHelpType'ı çağırabilir SetHelpMode
ve olarak afxWinHelp
ayarlayabilirsiniz.
CWinApp::SetRegistryKey
Uygulama ayarlarının INI dosyaları yerine kayıt defterinde depolanmasına neden olur.
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
Parametreler
lpszRegistryKey
Anahtarın adını içeren bir dizenin işaretçisi.
nIDRegistryKey
Kayıt defteri anahtarının adını içeren bir dize kaynağının kimliği.
Açıklamalar
Bu işlev m_pszRegistryKey ayarlar ve daha sonra öğesinin GetProfileInt
, GetProfileString
, WriteProfileInt
ve WriteProfileString
üye işlevleri CWinApp
tarafından kullanılır. Bu işlev çağrıldıysa, en son kullanılan (MRU) dosyaların listesi de kayıt defterinde depolanır. Kayıt defteri anahtarı genellikle bir şirketin adıdır. Şu formdaki bir anahtarda depolanır: HKEY_CURRENT_USER\Software\<company name>\<application name>\<section name>\<value name>.
CWinApp::SupportsApplicationRecovery
Yeniden başlatma yöneticisinin beklenmedik şekilde çıkan bir uygulamayı kurtarıp kurtarmayacağını belirler.
virtual BOOL SupportsApplicationRecovery() const;
Dönüş Değeri
TRUE, yeniden başlatma yöneticisinin uygulamayı kurtardiğini gösterir; YANLIŞ, yeniden başlatma yöneticisinin olmadığını gösterir.
CWinApp::SupportsAutosaveAtInterval
Yeniden başlatma yöneticisinin belgeleri düzenli aralıklarla otomatik olarak açık durumda tuşlarına basıp atmayacağını belirler.
virtual BOOL SupportsAutosaveAtInterval() const;
Dönüş Değeri
TRUE, yeniden başlatma yöneticisinin açık belgeleri otomatik olarak gösterdiğini gösterir; YANLIŞ, yeniden başlatma yöneticisinin olmadığını gösterir.
CWinApp::SupportsAutosaveAtRestart
Uygulama yeniden başlatıldığında, yeniden başlatma yöneticisinin açık belgeleri otomatik olarak alıp almadığını belirler.
virtual BOOL SupportsAutosaveAtRestart() const;
Dönüş Değeri
TRUE, uygulama yeniden başlatıldığında yeniden başlatma yöneticisinin belgeleri otomatik olarak açık durumda olduğunu gösterir; YANLIŞ, yeniden başlatma yöneticisinin olmadığını gösterir.
CWinApp::SupportsRestartManager
Uygulamanın yeniden başlatma yöneticisini destekleyip desteklemediğini belirler.
virtual BOOL SupportsRestartManager() const;
Dönüş Değeri
TRUE, uygulamanın yeniden başlatma yöneticisini desteklediğini gösterir; YANLIŞ, uygulamanın olmadığını gösterir.
CWinApp::Kaydını Kaldır
Uygulama nesnesi tarafından kaydedilen tüm dosyaların kaydını kaldırır.
virtual BOOL Unregister();
Dönüş Değeri
Başarıda sıfır olmayan; aksi takdirde 0.
Açıklamalar
İşlev, Unregister
uygulama nesnesi ve Register işlevi tarafından gerçekleştirilen kaydı geri alır. Normalde her iki işlev de MFC tarafından örtük olarak çağrılır ve bu nedenle kodunuzda görünmez.
Özel kayıt kaldırma adımları gerçekleştirmek için bu işlevi geçersiz kılın.
CWinApp::UnregisterShellFileTypes
Uygulamanızın tüm belge türlerinin kaydını Windows Dosya Yöneticisi ile silmek için bu üye işlevini çağırın.
void UnregisterShellFileTypes();
CWinApp::WinHelp
WinHelp uygulamasını çağırmak için bu üye işlevini çağırın.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parametreler
dwData
Ek verileri belirtir. Kullanılan değer nCmd parametresinin değerine bağlıdır.
nCmd
İstenen yardım türünü belirtir. Olası değerlerin listesi ve dwData parametresini nasıl etkiledikleri için bkz. WinHelp Windows işlevi.
Açıklamalar
Çerçeve, WinHelp uygulamasını çağırmak için bu işlevi de çağırır.
Uygulamanız sonlandırıldığında çerçeve WinHelp uygulamasını otomatik olarak kapatır.
Örnek
// Header File: HELPIDS.H
//
// This example header file is #include'd twice:
// (1) It is #include'd by the .CPP file that passes the DWORD
// context i.d. to CWinApp::WinHelp.
// (2) It is #include'd in the [MAP] section of the .HPJ file,
// to associate the help context string "HID_MYTOPIC" with
// the help context numeric i.d., 101.
// The help context string "HID_MYTOPIC" is what identifies the
// help topic in the help .RTF source file, in the "#" footnote:
// # HID_MYTOPIC
//
// Note, it is not necessary to manage help context id's this way
// for help topics associated with command id's and user interface
// id's defined in your RESOURCE.H file; you should use the MAKEHM
// tool via the custom build rule on your resource.h file to produce
// a help map (.HM) file for these id's. It is necessary to manage
// help context id's as illustrated here only for help topics not
// associated with command id's or user interface id's.
#define HID_MYTOPIC 101
// Show the custom help topic that has the context string
// "HID_MYTOPIC" in the help .RTF file, and which is mapped
// to the DWORD i.d. HID_MYTOPIC in the above HELPIDS.H file.
AfxGetApp()->WinHelp(HID_MYTOPIC);
// The following is one line of code in the help map (.HM)
// file produced by the MAKEHM tool, which is called by the custom
// build rule on the resource.h file. The MAKEHM tool reads the
// following #define in the application's RESOURCE.H file:
#define ID_MYCOMMAND 0x08004
// and adds a help id offset value of 0x10000 to create the
// help context DWORD value 0x18004:
// HID_MYCOMMAND 0x18004
// See MFC Tech Note 28 for more information on help id offset values.
// Rarely will you need to directly call WinHelp yourself
// with the help context i.d. for a command or user interface
// object. The framework will call WinHelp automatically when
// the user, for example, hits F1 when the focus is on a
// My Command menu item. However, if you do want to directly
// call WinHelp for the help topic associated with the command,
// here is how you would do it:
AfxGetApp()->WinHelp(0x10000 + ID_MYCOMMAND);
CWinApp::WriteProfileBinary
Uygulamanın kayıt defterinin veya öğesinin belirtilen bölümüne ikili veri yazmak için bu üye işlevini çağırın. INI dosyası.
BOOL WriteProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder. Bölüm yoksa oluşturulur. Bölümün adı büyük/küçük harf bağımsızdır; dize, büyük ve küçük harflerin herhangi bir bileşimi olabilir.
lpszEntry
Değerin yazılacağı girişi içeren null olarak sonlandırılan bir dizeyi gösterir. Girdi belirtilen bölümde yoksa oluşturulur.
pData
Yazılacak verileri gösterir.
nBayt
Yazılacak bayt sayısını içerir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
Bu örnek, bir MFC uygulamasındaki herhangi bir işlevden kullanılabilecek ve GetProfileBinary
kullanılabilecek bir yol WriteProfileBinary
gösteren CWinApp sınıfına ulaşmak için kullanırCWinApp* pApp = AfxGetApp();
.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;
pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer
Başka bir örnek için CWinApp::GetProfileBinary örneğine bakın.
CWinApp::WriteProfileInt
Belirtilen değeri uygulamanın kayıt defterinin veya öğesinin belirtilen bölümüne yazmak için bu üye işlevini çağırın. INI dosyası.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder. Bölüm yoksa oluşturulur. Bölümün adı büyük/küçük harf bağımsızdır; dize, büyük ve küçük harflerin herhangi bir bileşimi olabilir.
lpszEntry
Değerin yazılacağı girişi içeren null olarak sonlandırılan bir dizeyi gösterir. Girdi belirtilen bölümde yoksa oluşturulur.
nDeğer
Yazılacak değeri içerir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
Bu örnekCWinApp* pApp = AfxGetApp();
, CWinApp sınıfına ulaşarak , WriteProfileInt
, GetProfileString
ve GetProfileInt
işlevlerinin WriteProfileString
bir MFC uygulamasındaki herhangi bir işlevden kullanılabileceğini gösterir.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Başka bir örnek için CWinApp::GetProfileInt örneğine bakın.
CWinApp::WriteProfileString
Belirtilen dizeyi uygulamanın kayıt defterinin veya öğesinin belirtilen bölümüne yazmak için bu üye işlevini çağırın. INI dosyası.
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parametreler
lpszSection
Girdiyi içeren bölümü belirten null olarak sonlandırılan bir dizeye işaret eder. Bölüm yoksa oluşturulur. Bölümün adı büyük/küçük harf bağımsızdır; dize, büyük ve küçük harflerin herhangi bir bileşimi olabilir.
lpszEntry
Değerin yazılacağı girişi içeren null olarak sonlandırılan bir dizeyi gösterir. Girdi belirtilen bölümde yoksa oluşturulur. Bu parametre NULL ise, lpszSection tarafından belirtilen bölüm silinir.
lpszValue
Yazılacak dizeyi gösterir. Bu parametre NULL ise, lpszEntry parametresi tarafından belirtilen girdi silinir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Başka bir örnek için CWinApp::GetProfileInt örneğine bakın.
CWinApp::SetAppID
Uygulama için Uygulama Kullanıcı Modeli Kimliğini açıkça ayarlar. Bu yöntem, kullanıcıya herhangi bir kullanıcı arabirimi sunulmadan önce çağrılmalıdır (en iyi yer uygulama oluşturucudur).
void SetAppID(LPCTSTR lpcszAppID);
Parametreler
lpcszAppID
Uygulama Kullanıcı Modeli Kimliğini belirtir.
Açıklamalar
Ayrıca bkz.
CWinThread Sınıfı
Hiyerarşi Grafiği
Nasıl yapılır: Yeniden Başlatma Yöneticisi Desteği Ekleme