Aracılığıyla paylaş


TN022: Standart Komutları Uygulama

Dekont

Aşağıdaki teknik not, çevrimiçi belgelere ilk kez eklendiğinden beri güncelleştirilmemiştir. Sonuç olarak, bazı yordamlar ve konular güncel olmayabilir veya yanlış olabilir. En son bilgiler için, çevrimiçi belge dizininde ilgilendiğiniz konuyu aramanız önerilir.

Bu not, MFC 2.0 tarafından sağlanan standart komut uygulamalarını açıklar. İlk olarak Teknik Not 21'i okuyun çünkü standart komutların birçoğunu uygulamak için kullanılan mekanizmalar açıklanmaktadır.

Bu açıklama MFC mimarileri, API'ler ve yaygın programlama uygulamaları hakkında bilgi sahibi olduğunu varsayar. Belgelenmiş ve belgelenmemiş "yalnızca uygulama" API'leri açıklanmıştır. Burası, MFC'deki özellikleri veya nasıl program yapılacağını öğrenmeye başlamak için uygun bir yer değildir. Daha fazla genel bilgi ve belgelenmiş API'lerin ayrıntıları için Visual C++ bölümüne bakın.

Sorun

MFC, AFXRES.H üst bilgi dosyasında birçok standart komut kimlikleri tanımlar. Bu komutlar için çerçeve desteği farklılık gösterir. Çerçeve sınıflarının bu komutları nerede ve nasıl işlediğini anlamak yalnızca çerçevenin dahili olarak nasıl çalıştığını göstermekle kalmaz, standart uygulamaları özelleştirme ve kendi komut işleyicilerinizi uygulamak için size birkaç teknik öğretme konusunda yararlı bilgiler sağlar.

Bu Teknik Notun İçeriği

Her komut kimliği iki bölümde açıklanmıştır:

  • Başlık: komut kimliğinin sembolik adı (örneğin, ID_FILE_SAVE) ve ardından komutun amacı (örneğin, "geçerli belgeyi kaydeder") iki nokta üst üste ile ayrılmıştır.

  • Komutu hangi sınıfların uyguladığını ve varsayılan uygulamanın ne yaptığını açıklayan bir veya daha fazla paragraf

Çoğu varsayılan komut uygulaması, çerçevenin temel sınıf ileti eşlemesinde önceden derlenir. Türetilmiş sınıfınızda açık kablolama gerektiren bazı komut uygulamaları vardır. Bunlar "Not" altında açıklanmıştır. AppWizard'da doğru seçenekleri belirlerseniz, bu varsayılan işleyiciler oluşturulan iskelet uygulamada sizin için bağlanır.

Adlandırma Kuralı

Standart komutlar, mümkünse kullanmanızı önerdiğimiz basit bir adlandırma kuralına uyar. Çoğu standart komut, bir uygulamanın menü çubuğundaki standart yerlerde bulunur. Komutun sembolik adı "ID_" ile başlar ve ardından standart açılır menü adı ve ardından menü öğesi adı gelir. Simgesel ad, alt çizgi sözcük sonlarıyla birlikte büyük harfle gösterilir. Standart menü öğesi adları olmayan komutlar için, "ID_" ile başlayan bir mantıksal komut adı tanımlanır (örneğin, ID_NEXT_PANE).

Menü öğelerine, araç çubuğu düğmelerine veya diğer komut kullanıcı arabirimi nesnelerine bağlı olacak şekilde tasarlanmış komutları belirtmek için "ID_" ön ekini kullanırız. "ID_" komutlarını işleyen komut işleyicileri MFC komut mimarisinin ON_COMMAND ve ON_UPDATE_COMMAND_UI mekanizmalarını kullanmalıdır.

Komut mimarisini izlemeyen ve bunları etkinleştirmek ve devre dışı bırakmak için menüye özgü koda ihtiyaç duyan menü öğeleri için standart "IDM_" ön ekini kullanmanızı öneririz. MFC komut mimarisinin takip edilmesi yalnızca komut işleyicilerini daha güçlü hale getirmediğinden (araç çubuklarıyla çalışacakları için) aynı zamanda komut işleyici kodunu yeniden kullanılabilir hale getirdiğinden, elbette menüye özgü komutların sayısı küçük olmalıdır.

Kimlik Aralıkları

MFC'de kimlik aralıklarının kullanımı hakkında daha fazla bilgi için lütfen Teknik Not 20'ye bakın.

MFC standart komutları 0xEFFF 0xE000 aralığında yer alır. Kitaplığın gelecek sürümlerinde değiştirilebilir olduğundan lütfen bu kimliklerin belirli değerlerine güvenmeyin.

Uygulamanız 0xDFFF için 0x8000 aralığındaki komutlarını tanımlamalıdır.

Standart Komut Kimlikleri

Her komut kimliği için, PROMPTS dosyasında bulunabilen standart bir ileti satırı istem dizesi vardır. RC. Bu menü isteminin dize kimliği, komut kimliğiyle aynı olmalıdır.

  • ID_FILE_NEW Yeni/boş bir belge oluşturur.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnFileNew uygulamadaki belge şablonlarının sayısına bağlı olarak bu komutu farklı şekilde uygular. Yalnızca bir CDocTemplatetane varsa, CWinApp::OnFileNew uygun çerçeve ve görünüm sınıfının yanı sıra bu türde yeni bir belge oluşturur.

    Birden CDocTemplatefazla varsa, CWinApp::OnFileNew kullanıcıdan kullanılacak belge türünü seçmesine izin veren bir iletişim kutusu (AFX_IDD_NEWTYPEDLG) ister. Seçilen CDocTemplate , belgeyi oluşturmak için kullanılır.

    ID_FILE_NEW yaygın özelleştirmelerinden biri, farklı ve daha grafiksel bir belge türü seçimi sağlamaktır. Bu durumda kendi CMyApp::OnFileNew uygulamanızı uygulayabilir ve yerine ileti haritanıza CWinApp::OnFileNewyerleştirebilirsiniz. Temel sınıf uygulamasını çağırmaya gerek yoktur.

    ID_FILE_NEW başka bir yaygın özelleştirmesi, her türden bir belge oluşturmak için ayrı bir komut sağlamaktır. Bu durumda, ID_FILE_NEW_CHART ve ID_FILE_NEW_SHEET gibi yeni komut kimlikleri tanımlamanız gerekir.

  • ID_FILE_OPEN Var olan bir belgeyi açar.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnFileOpen çok basit bir çağrı CWinApp::DoPromptFileName uygulamasına sahiptir ve ardından CWinApp::OpenDocumentFile açılacak dosyanın dosya veya yol adıyla birlikte kullanılır. Uygulama CWinApp yordamı DoPromptFileName standart FileOpen iletişim kutusunu getirir ve geçerli belge şablonlarından elde edilen dosya uzantılarıyla doldurur.

    ID_FILE_OPEN yaygın özelleştirmelerinden biri, DosyaAç iletişim kutusunu özelleştirmek veya ek dosya filtreleri eklemektir. Bunu özelleştirmenin önerilen yolu, varsayılan uygulamayı kendi FileOpen iletişim kutunuzla değiştirmek ve belgenin dosya veya yol adıyla çağırmaktır CWinApp::OpenDocumentFile . Temel sınıfı çağırmaya gerek yoktur.

  • ID_FILE_CLOSE Açık durumdaki belgeyi kapatır.

    CDocument::OnFileCloseCDocument::SaveModified, kullanıcıdan belgenin değiştirilmesi durumunda belgeyi kaydetmesini isteyip istemediğinizi sorar ve ardından öğesini çağırırOnCloseDocument. Belgeyi yok etmek de dahil olmak üzere tüm kapatma mantığı rutinde OnCloseDocument yapılır.

    Dekont

    ID_FILE_CLOSE, belgeler çerçevesi penceresine gönderilen bir WM_CLOSE iletisinden veya SC_CLOSE sistem komutundan farklı davranır. Bir pencere kapatılırsa, belge ancak belgeyi gösteren son çerçeve penceresiyse kapatılır. Belgeyi ID_FILE_CLOSE kapatıldığında yalnızca belge kapatılmaz, belgeyi gösteren tüm çerçeve pencereleri kapatılır.

  • ID_FILE_SAVE Geçerli belgeyi kaydeder.

    Uygulama, hem OnFileSaveAshem de OnFileSave için kullanılan bir yardımcı yordamı CDocument::DoSave kullanır. Daha önce kaydedilmemiş bir belgeyi kaydederseniz (yani, FileNew örneğinde olduğu gibi bir yol adı yoktur) veya salt okunur bir belgeden okunursa, OnFileSave mantık ID_FILE_SAVE_AS komutu gibi davranır ve kullanıcıdan yeni bir dosya adı sağlamasını ister. Dosyayı açma ve kaydetme işleminin gerçek işlemi sanal işlevi OnSaveDocumentaracılığıyla gerçekleştirilir.

    ID_FILE_SAVE özelleştirmenin iki yaygın nedeni vardır. Kaydedilmeyen belgeler için ID_FILE_SAVE menü öğelerini ve araç çubuğu düğmelerini kullanıcı arabiriminizden kaldırmanız yeterlidir. Ayrıca, belgenizi hiçbir zaman kirletdiğinizden (yani, hiçbir zaman aramadığınızdan CDocument::SetModifiedFlag) emin olun ve çerçeve belgenin kaydedilmesine hiçbir zaman neden olmaz. Disk dosyası dışında bir yere kaydeden belgeler için bu işlem için yeni bir komut tanımlayın.

    durumunda COleServerDoc, ID_FILE_SAVE hem dosya kaydetme (normal belgeler için) hem de dosya güncelleştirmesi (eklenmiş belgeler için) için kullanılır.

    Belge verileriniz tek tek disk dosyalarında depolanıyorsa ancak varsayılan CDocument serileştirme uygulamasını kullanmak istemiyorsanız yerine geçersiz kılmanız CDocument::OnSaveDocument OnFileSavegerekir.

  • ID_FILE_SAVE_AS Geçerli belgeyi farklı bir dosya adı altında kaydeder.

    Uygulama, CDocument::OnFileSaveAs ile aynı CDocument::DoSave yardımcı yordamı OnFileSavekullanır. Belgelerde OnFileSaveAs kaydetmeden önce dosya adı yoksa, komut aynı ID_FILE_SAVE işlenir. COleServerDoc::OnFileSaveAs normal bir belge veri dosyasını kaydetmek veya başka bir uygulamaya katıştırılmış ole nesnesini temsil eden bir sunucu belgesini ayrı bir dosya olarak kaydetmek için mantığı uygular.

    ID_FILE_SAVE mantığını özelleştirirseniz, büyük olasılıkla ID_FILE_SAVE_AS benzer şekilde özelleştirmek istersiniz veya "Farklı Kaydet" işlemi belgenize uygulanmayabilir. Gerekli değilse menü çubuğunuzdaki menü öğesini kaldırabilirsiniz.

  • ID_FILE_SAVE_COPY_AS Geçerli belgenin kopyasını yeni bir adla kaydeder.

    Uygulama COleServerDoc::OnFileSaveCopyAs , belge nesnesinin kaydetmeden sonra temel dosyaya "eklenmemesi" dışında uygulamasına çok benzer CDocument::OnFileSaveAs. Yani, bellek içi belge kaydetmeden önce "değiştirildi" ise, yine de "değiştirilir". Ayrıca, bu komutun belgede depolanan yol adı veya başlığı üzerinde hiçbir etkisi yoktur.

  • ID_FILE_UPDATE Eklenmiş belgeyi kaydetmesi için kapsayıcıya bildirir.

    Uygulama COleServerDoc::OnUpdateDocument yalnızca kapsayıcıya eklemenin kaydedilmesi gerektiğini bildirmektedir. Kapsayıcı daha sonra eklenmiş nesneyi kaydetmek için uygun OLE API'lerini çağırır.

  • ID_FILE_PAGE_SETUP Uygulamaya özgü sayfa yapısı/düzeni iletişim kutusunu çağırır.

    Şu anda bu iletişim kutusu için standart yoktur ve çerçevede bu komutun varsayılan uygulaması yoktur.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_FILE_PRINT_SETUP Standart Yazdırma Kurulumu iletişim kutusunu çağırın.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    Bu komut, kullanıcının en azından bu belge veya bu uygulamadaki en çok tüm belgeler için yazıcı ve yazdırma ayarlarını özelleştirmesine olanak tanıyan standart yazdırma kurulumu iletişim kutusunu çağırır. Tüm sistemin varsayılan yazıcı ayarlarını değiştirmek için Denetim Masası kullanmanız gerekir.

    CWinApp::OnFilePrintSetupbir nesne oluşturup uygulama işlevini çağıran CWinApp::DoPrintDialog çok basit bir CPrintDialog uygulamaya sahiptir. Bu, uygulamanın varsayılan yazıcı kurulumunu ayarlar.

    Bu komutu özelleştirmenin yaygın gereksinimi, kaydedildiğinde belgeyle birlikte depolanması gereken belge başına yazıcı ayarlarına izin vermektir. Bunu yapmak için sınıfınıza CDocument bir nesne oluşturan, uygun yazıcı öznitelikleriyle (genellikle hDevMode ve hDevNames) başlatan, çağıran CPrintDialog::DoModalve değiştirilen yazıcı ayarlarını kaydeden bir CPrintDialog ileti eşlemesi işleyicisi eklemeniz gerekir. Sağlam bir uygulama için, hataları algılamak ve mantıklı varsayılanlarla ilgilenmek ve CWinApp::UpdatePrinterSelection sistem genelindeki yazıcı değişikliklerini izlemek için uygulamasına CWinApp::DoPrintDialog bakmanız gerekir.

  • geçerli belgenin standart yazdırmasını ID_FILE_PRINT

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CViewileti eşlemesine bağlamanız gerekir.

    Bu komut geçerli belgeyi yazdırır veya daha doğru bir şekilde yazdırma işlemini başlatır ve bu işlem standart yazdırma iletişim kutusunu çağırmayı ve yazdırma altyapısını çalıştırmayı içerir.

    CView::OnFilePrint bu komutu ve ana yazdırma döngüsünü uygular. Yazdır iletişim kutusuyla kullanıcıdan bilgi almak için sanalı CView::OnPreparePrinting çağırır. Ardından çıktı DC'sini yazıcıya gidecek şekilde hazırlar, yazdırma ilerleme durumu iletişim kutusunu (AFX_IDD_PRINTDLG) getirir ve çıkışı yazıcıya gönderir StartDoc . CView::OnFilePrint ayrıca ana sayfa odaklı yazdırma döngüsünü içerir. Her sayfa için sanalı CView::OnPrepareDC ve ardından bir StartPage kaçışı çağırır ve bu sayfa için sanalı CView::OnPrint çağırır. Tamamlandığında sanal CView::OnEndPrinting çağrılır ve yazdırma ilerleme durumu iletişim kutusu kapatılır.

    MFC yazdırma mimarisi, yazdırma ve baskı önizleme için birçok farklı yolla bağlanacak şekilde tasarlanmıştır. Normalde çeşitli geçersiz kılınabilir işlevleri sayfa odaklı yazdırma görevleri için yeterli bulursunuz CView . Yalnızca sayfa odaklı olmayan çıkış için yazıcıyı kullanan bir uygulama söz konusu olduğunda, ID_FILE_PRINT uygulamasını değiştirme gereksinimini bulmanız gerekir.

  • ID_FILE_PRINT_PREVIEW Geçerli belge için baskı önizleme moduna girin.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CViewileti eşlemesine bağlamanız gerekir.

    CView::OnFilePrintPreview , belgelenmiş yardımcı işlevini CView::DoPrintPreviewçağırarak baskı önizleme modunu başlatır. CView::DoPrintPreview baskı döngüsü için ana altyapı olduğu gibi OnFilePrint baskı önizleme döngüsünün ana altyapısıdır.

    Baskı önizleme işlemi, 'a DoPrintPreviewfarklı parametreler geçirilerek çeşitli yollarla özelleştirilebilir. Baskı önizlemenin bazı ayrıntılarını ve nasıl özelleştirileceği hakkında bilgi veren Teknik Not 30'a bakın.

  • ID_FILE_MRU_FILE1... FILE16 Dosya MRU listesi için bir dizi komut kimlikleri.

    CWinApp::OnUpdateRecentFileMenu , ON_UPDATE_COMMAND_UI mekanizmasının daha gelişmiş kullanımlarından biri olan bir güncelleştirme komutu UI işleyicisidir. Menü kaynağınızda, kimlik ID_FILE_MRU_FILE1 yalnızca tek bir menü öğesi tanımlamanız gerekir. Bu menü öğesi başlangıçta devre dışı kalır.

    MRU listesi büyüdükçe, listeye daha fazla menü öğesi eklenir. Standart CWinApp uygulama varsayılan olarak en son kullanılan dört dosyanın standart sınırına ayarlanmıştır. Daha büyük veya daha küçük bir değerle çağırarak CWinApp::LoadStdProfileSettings varsayılanı değiştirebilirsiniz. MRU listesi uygulamanın içinde depolanır. INI dosyası. çağrısı yaparsanız LoadStdProfileSettingsliste uygulamanızın işlevine InitInstance yüklenir ve uygulamanız çıktığında kaydedilir. MRU güncelleştirme komutu kullanıcı arabirimi işleyicisi, mutlak yolları dosya menüsünde görüntülenmek üzere göreli yollara da dönüştürür.

    CWinApp::OnOpenRecentFile , gerçek komutu gerçekleştiren ON_COMMAND işleyicidir. Yalnızca MRU listesinden dosya adını alır ve dosyayı açma ve MRU listesini güncelleştirmenin tüm işlerini yapan öğesini çağırır CWinApp::OpenDocumentFile.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_EDIT_CLEAR Geçerli seçimi temizler

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView kullanarak CEdit::Clearbu komutun bir uygulamasını sağlar. Geçerli bir seçim yoksa komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_CLEAR_ALL Belgenin tamamını temizler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz. Örnek uygulama için bkz. MFC Öğreticisi örnek KARALAMA .

  • ID_EDIT_COPY Geçerli seçimi Pano'ya kopyalar.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , şu anda seçili olan metni kullanarak CEdit::Copypanoya CF_TEXT olarak kopyalayan bu komutun bir uygulamasını sağlar. Geçerli bir seçim yoksa komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_CUT Geçerli seçimi Pano'ya keser.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , şu anda seçili olan metni kullanarak CEdit::Cutpanoya CF_TEXT olarak kesen bu komutun bir uygulamasını sağlar. Geçerli bir seçim yoksa komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_FIND Bulma işlemini başlatır, modsuz bul iletişim kutusunu açar.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , önceki bulma/değiştirme ayarlarını özel uygulama değişkenlerinde kullanmak ve depolamak için uygulama yardımcı işlevini OnEditFindReplace çağıran bu komutun bir uygulamasını sağlar. sınıfı CFindReplaceDialog , kullanıcıya sorulmak üzere modsuz iletişim kutusunu yönetmek için kullanılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_PASTE Geçerli Pano içeriğini ekler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , kullanarak CEdit::Pasteseçili metnin yerine geçerli Pano verilerini kopyalayan bu komutun bir uygulamasını sağlar. Pano'da CF_TEXT yoksa komut devre dışı bırakılır.

    COleClientDoc yalnızca bu komut için bir güncelleştirme komutu kullanıcı arabirimi işleyicisi sağlar. Pano eklenebilir bir OLE öğesi/nesnesi içermiyorsa, komut devre dışı bırakılır. Asıl yapıştırmayı yapmak için gerçek komutun işleyicisini yazmak sizin sorumluluğundadır. OLE uygulamanız başka biçimler de yapıştırabiliyorsa, görünüm veya belgenizde (yani, komut hedef yönlendirmesinde daha önce COleClientDoc bir yerde) kendi güncelleştirme komut ui işleyicinizi sağlamanız gerekir.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

    Standart OLE uygulamasını değiştirmek için kullanın COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK Geçerli Pano içeriğinden bir bağlantı ekler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    COleDocument yalnızca bu komut için bir güncelleştirme komutu kullanıcı arabirimi işleyicisi sağlar. Panoda bağlanabilir OLE öğesi/nesnesi yoksa, komut devre dışı bırakılır. Asıl yapıştırmayı yapmak için gerçek komutun işleyicisini yazmak sizin sorumluluğundadır. OLE uygulamanız başka biçimler de yapıştırabiliyorsa, görünüm veya belgenizde (yani, komut hedef yönlendirmesinde daha önce COleDocument bir yerde) kendi güncelleştirme komut ui işleyicinizi sağlamanız gerekir.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

    Standart OLE uygulamasını değiştirmek için kullanın COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL Geçerli Pano içeriğini seçeneklerle ekler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir. MFC bu iletişim kutusunu sağlamaz.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_REPEAT Son işlemi yineler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , son bulma işlemini yinelemek için bu komutun bir uygulamasını sağlar. Son bulma için özel uygulama değişkenleri kullanılır. Bulma girişiminde bulunamazsa komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_REPLACE Değiştirme işlemini başlatır, modsuz değiştirme iletişim kutusunu açar.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , önceki bulma/değiştirme ayarlarını özel uygulama değişkenlerinde kullanmak ve depolamak için uygulama yardımcı işlevini OnEditFindReplace çağıran bu komutun bir uygulamasını sağlar. CFindReplaceDialog sınıfı, kullanıcıdan istemde bulunan modsuz iletişim kutusunu yönetmek için kullanılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_SELECT_ALL Belgenin tamamını seçer.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView , belgedeki tüm metni seçen bu komutun bir uygulamasını sağlar. Seçecek metin yoksa komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_UNDO Son işlemi geri alır.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    CEditView kullanarak CEdit::Undobu komutun bir uygulamasını sağlar. YANLIŞ döndürürse CEdit::CanUndo komut devre dışı bırakılır.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_EDIT_REDO Son işlemi yineler.

    Şu anda bu komut için standart bir uygulama yoktur. Bunu türetilmiş her CViewsınıf için uygulamanız gerekir.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_WINDOW_NEW Etkin belgede başka bir pencere açar.

    CMDIFrameWnd::OnWindowNew geçerli belgenin başka bir görünümünü içeren başka bir çerçeve oluşturmak için geçerli belgenin belge şablonunu kullanarak bu güçlü özelliği uygular.

    Çoğu birden çok belge arabirimi (MDI) Penceresi menü komutu gibi, etkin MDI alt penceresi yoksa komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez. Ek görünümler veya çerçeve pencereleri oluşturan bir komut sağlamak istiyorsanız, kendi komutunuzu icat etmek muhtemelen daha iyi olacaktır. Kodu kopyalayabilir CMDIFrameWnd::OnWindowNew ve belirli çerçeveye değiştirebilir ve beğendiğiniz sınıfları görüntüleyebilirsiniz.

  • ID_WINDOW_ARRANGE MDI penceresinin alt kısmındaki Yerleştir simgeleri.

    CMDIFrameWnd bu standart MDI komutunu bir uygulama yardımcı işlevinde OnMDIWindowCmduygular. Bu yardımcı, komut kimliklerini MDI Windows iletileriyle eşler ve bu nedenle çok fazla kod paylaşabilir.

    Çoğu MDI Penceresi menü komutu gibi, etkin MDI alt penceresi yoksa komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_WINDOW_CASCADE Cascades pencereleri üst üste gelecek şekilde.

    CMDIFrameWnd bu standart MDI komutunu bir uygulama yardımcı işlevinde OnMDIWindowCmduygular. Bu yardımcı, komut kimliklerini MDI Windows iletileriyle eşler ve bu nedenle çok fazla kod paylaşabilir.

    Çoğu MDI Penceresi menü komutu gibi, etkin MDI alt penceresi yoksa komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • Kutucuklar pencerelerini yatay olarak ID_WINDOW_TILE_HORZ.

    Bu komut aynı ID_WINDOW_CASCADE gibi uygulanır CMDIFrameWnd , ancak işlem için farklı bir MDI Windows iletisi kullanılır.

    Uygulamanız için varsayılan kutucuk yönlendirmesini seçmelisiniz. Bunu yapmak için Pencere "Kutucuğu" menü öğesinin kimliğini ID_WINDOW_TILE_HORZ veya ID_WINDOW_TILE_VERT olarak değiştirebilirsiniz.

  • Kutucuklar pencerelerini dikey olarak ID_WINDOW_TILE_VERT.

    Bu komut aynı ID_WINDOW_CASCADE gibi uygulanır CMDIFrameWnd , ancak işlem için farklı bir MDI Windows iletisi kullanılır.

    Uygulamanız için varsayılan kutucuk yönlendirmesini seçmelisiniz. Bunu yapmak için Pencere "Kutucuğu" menü öğesinin kimliğini ID_WINDOW_TILE_HORZ veya ID_WINDOW_TILE_VERT olarak değiştirebilirsiniz.

  • Bölücüye klavye arabirimini ID_WINDOW_SPLIT.

    CView uygulama için CSplitterWnd bu komutu işler. Görünüm bir bölücü penceresinin parçasıysa, bu komut uygulama işlevine CSplitterWnd::DoKeyboardSplittemsilci olarak atanır. Böylece bölücü, klavye kullanıcılarının bölücü penceresini bölmesine veya ayırmasını kaldırmasına olanak sağlayacak bir moda yerleştirir.

    Görünüm bir ayırıcıda değilse bu komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_APP_ABOUT Hakkında iletişim kutusunu çağırır.

    Bir uygulamanın Hakkında kutusu için standart bir uygulama yoktur. AppWizard tarafından oluşturulan varsayılan uygulama, uygulamanız için özel bir iletişim kutusu sınıfı oluşturur ve Bu sınıfı Hakkında kutunuz olarak kullanır. AppWizard, bu komutu işleyen ve iletişim kutusunu çağıran önemsiz komut işleyicisini de yazar.

    Bu komutu neredeyse her zaman uygulayacaksınız.

  • ID_APP_EXIT Uygulamadan çıkın.

    CWinApp::OnAppExit uygulamanın ana penceresine bir WM_CLOSE iletisi göndererek bu komutu işler. Uygulamanın standart olarak kapatılması (kirli dosyaların istenmesi vb.) uygulama tarafından CFrameWnd işlenir.

    Bu komut işleyicisinin özelleştirilmesi önerilmez. Geçersiz kılma CWinApp::SaveAllModified veya CFrameWnd kapatma mantığı önerilir.

    Bu komutu uygulamayı seçerseniz, bu komut kimliğini kullanmanızı öneririz.

  • ID_HELP_INDEX Yardım konularını listeler. HLP dosyası.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnHelpIndex bu komutu önemsiz bir şekilde çağırarak CWinApp::WinHelpişler.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_HELP_USING Yardım'ın nasıl kullanılacağına ilişkin yardım görüntüler.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnHelpUsing bu komutu önemsiz bir şekilde çağırarak CWinApp::WinHelpişler.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_CONTEXT_HELP SHIFT-F1 yardım moduna girer.

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnContextHelp , yardım modu imlecini ayarlayarak, kalıcı bir döngü girerek ve kullanıcının yardım almak için bir pencere seçmesini bekleyerek bu komutu işler. MFC Yardım uygulaması hakkında daha fazla bilgi için lütfen Teknik Not 28'e bakın.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_HELP Geçerli bağlamla ilgili yardım sağlar

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    CWinApp::OnHelp geçerli uygulama bağlamı için doğru yardım bağlamını alarak bu komutu işler. Bu işlem basit F1 yardımını, ileti kutularıyla ilgili yardım vb. işler. MFC yardım uygulaması hakkında daha fazla bilgi için lütfen Teknik Not 28'e bakın.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_DEFAULT_HELP Bağlam için varsayılan yardımı görüntüler

    Dekont

    Bu işlevi etkinleştirmek için bunu türetilmiş sınıfınızın CWinAppileti eşlemesine bağlamanız gerekir.

    Bu komut genellikle ile CWinApp::OnHelpIndexeşlenir.

    Varsayılan Yardım ile Yardım dizini arasında bir ayrım isteniyorsa farklı bir komut işleyicisi sağlanabilir.

  • ID_NEXT_PANE Sonraki bölmeye gider

    CView uygulama için CSplitterWnd bu komutu işler. Görünüm bir bölücü penceresinin parçasıysa, bu komut uygulama işlevine CSplitterWnd::OnNextPaneCmdtemsilci olarak atanır. Bu işlem etkin görünümü bölücüdeki bir sonraki bölmeye taşır.

    Görünüm bir bölücüde değilse veya gidecek bir sonraki bölme yoksa bu komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_PREV_PANE Önceki bölmeye gider

    CView uygulama için CSplitterWnd bu komutu işler. Görünüm bir bölücü penceresinin parçasıysa, bu komut uygulama işlevine CSplitterWnd::OnNextPaneCmdtemsilci olarak atanır. Bu işlem etkin görünümü bölücüdeki önceki bölmeye taşır.

    Görünüm bir bölücüde değilse veya gidecek önceki bir bölme yoksa bu komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_OLE_INSERT_NEW Yeni bir OLE nesnesi ekler

    Şu anda bu komut için standart bir uygulama yoktur. Geçerli seçime yeni bir OLE öğesi/nesnesi eklemek için türetilmiş sınıfınız CViewiçin bunu uygulamanız gerekir.

    Tüm OLE istemci uygulamaları bu komutu uygulamalıdır. AppWizard, OLE seçeneğiyle, görünüm sınıfınızda tamamlamanız gereken bir iskelet uygulaması OnInsertObject oluşturur.

    Bu komutun eksiksiz bir şekilde uygulanması için MFC OLE örneği OCLIENT örneğine bakın.

  • ID_OLE_EDIT_LINKS OLE bağlantılarını düzenler

    COleDocument bu komutu, standart OLE bağlantıları iletişim kutusunun MFC tarafından sağlanan uygulamasını kullanarak işler. Bu iletişim kutusunun uygulamasına COleLinksDialog sınıfı üzerinden erişilir. Geçerli belge herhangi bir bağlantı içermiyorsa, komut devre dışı bırakılır.

    Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_OLE_VERB_FIRST... SON OLE fiilleri için bir kimlik aralığı

    COleDocument seçili durumdaki OLE öğesi/nesnesi tarafından desteklenen fiiller için bu komut kimliği aralığını kullanır. Belirli bir OLE öğesi/nesne türü sıfır veya daha fazla özel fiil destekleyebileceğinden bu bir aralık olmalıdır. Uygulamanızın menüsünde, ID_OLE_VERB_FIRST kimliğine sahip bir menü öğeniz olmalıdır. Program çalıştırıldığında, menü uygun menü fiil açıklaması (veya birçok fiil içeren açılır menü) ile güncelleştirilir. OLE menüsünün yönetimi tarafından AfxOleSetEditMenuişlenir ve bu komut için güncelleştirme komutu kullanıcı arabirimi işleyicisinde gerçekleştirilir.

    Bu aralıktaki komut kimliğinin her birini işlemek için açık bir komut işleyicisi yoktur. COleDocument::OnCmdMsg bu aralıktaki tüm komut kimliklerini yakalamak, sıfır tabanlı fiil numaralarına dönüştürmek ve bu fiil için sunucuyu başlatmak için geçersiz kılınır (kullanarak COleClientItem::DoVerb).

    Bu komut kimliği aralığının özelleştirilmesi veya başka bir şekilde kullanılması önerilmez.

  • ID_VIEW_TOOLBAR Araç çubuğunu açıp kapatır

    CFrameWnd araç çubuğunun görünür durumunu değiştirmek için bu komutu ve update-command kullanıcı arabirimi işleyicisini işler. Araç çubuğu, AFX_IDW_TOOLBAR alt pencere kimliğine sahip çerçevenin alt penceresi olmalıdır. Komut işleyicisi aslında araç çubuğu penceresinin görünürlüğünü değiştirir. CFrameWnd::RecalcLayout yeni durumunda araç çubuğuyla çerçeve penceresini yeniden çizmek için kullanılır. Update-command kullanıcı arabirimi işleyicisi, araç çubuğu görünür olduğunda menü öğesini denetler.

    Bu komut işleyicisinin özelleştirilmesi önerilmez. Ek araç çubukları eklemek isterseniz, bu komut için komut işleyicisini ve update-command kullanıcı arabirimi işleyicisini kopyalayıp değiştirmek istersiniz.

  • ID_VIEW_STATUS_BAR Durum çubuğunu açıp kapatır

    Bu komut, farklı bir alt pencere kimliği (AFX_IDW_STATUS_BAR) kullanılması dışında ID_VIEW_TOOLBAR gibi uygulanır CFrameWnd .

Yalnızca Güncelleştirme Komut İşleyicileri

Durum çubuklarında gösterge olarak birkaç standart komut kimlikleri kullanılır. Bunlar, uygulama boşta kalma süresi sırasında geçerli görsel durumlarını görüntülemek için aynı update-command kullanıcı arabirimi işleme mekanizmasını kullanır. Kullanıcı tarafından seçilemediğinden (yani durum çubuğu bölmesi gönderemediğiniz için), bu komut kimlikleri için bir ON_COMMAND işleyicisi olması mantıklı değildir.

  • ID_INDICATOR_CAPS: CAP kilit göstergesi.

  • ID_INDICATOR_NUM: NUM kilit göstergesi.

  • ID_INDICATOR_SCRL: SCRL kilit göstergesi.

  • ID_INDICATOR_KANA: KANA kilit göstergesi (yalnızca Japon sistemleri için geçerlidir).

Bunların üçü de CFrameWnd::OnUpdateKeyIndicator, uygun Sanal Anahtara eşlemek için komut kimliğini kullanan bir uygulama yardımcısında uygulanır. Yaygın bir uygulama, uygun Sanal Anahtarın CCmdUI şu anda kilitli olup olmadığına bağlı olarak nesneyi etkinleştirir veya devre dışı bırakır (durum bölmeleri için devre dışı = metin yok).

Bu komut işleyicisinin özelleştirilmesi önerilmez.

  • ID_INDICATOR_EXT: EXTended select göstergesi.

  • ID_INDICATOR_OVR: OVeRstrike göstergesi.

  • ID_INDICATOR_REC: YENIDEN Kayıt göstergesi.

Şu anda bu göstergeler için standart bir uygulama yoktur.

Bu göstergeleri uygulamayı seçerseniz, bu gösterge kimliklerini kullanmanızı ve durum çubuğunuzdaki göstergelerin sıralamasını korumanızı öneririz (yani, şu sırayla: EXT, CAP, NUM, SCRL, OVR, REC).

Ayrıca bkz.

Sayıya Göre Teknik Notlar
Kategoriye Göre Teknik Notlar