Aracılığıyla paylaş


CSingleDocTemplate Sınıfı

Tek belge arabirimini (SDI) uygulayan bir belge şablonu tanımlar.

Sözdizimi

class CSingleDocTemplate : public CDocTemplate

Üyeler

Ortak Oluşturucular

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

Açıklamalar

SDI uygulaması, belgeyi görüntülemek için ana çerçeve penceresini kullanır; Aynı anda yalnızca bir belge açılabilir.

Belge şablonu üç sınıf türü arasındaki ilişkiyi tanımlar:

  • öğesinden CDocumenttüretdiğiniz bir belge sınıfı.

  • Yukarıda listelenen belge sınıfından verileri görüntüleyen bir görünüm sınıfı. Bu sınıfı , , CScrollViewCFormViewveya CEditViewöğesinden CViewtüretebilirsiniz. (Doğrudan da kullanabilirsiniz CEditView .)

  • Görünümü içeren bir çerçeve penceresi sınıfı. SDI belge şablonu için bu sınıfı öğesinden CFrameWndtüretebilirsiniz; ana çerçeve penceresinin davranışını özelleştirmeniz gerekmiyorsa, kendi sınıfınızı türetmeden doğrudan kullanabilirsiniz CFrameWnd .

SDI uygulaması genellikle tek bir belge türünü desteklediğinden yalnızca bir CSingleDocTemplate nesnesi vardır. Aynı anda yalnızca bir belge açılabilir.

Oluşturucu dışında öğesinin CSingleDocTemplate üye işlevlerini çağırmanız gerekmez. Çerçeve nesneleri dahili olarak işler CSingleDocTemplate .

kullanma CSingleDocTemplatehakkında daha fazla bilgi için bkz . Belge Şablonları ve Belge/Görünüm Oluşturma İşlemi.

Devralma Hiyerarşisi

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Gereksinimler

Üst bilgi: afxwin.h

CSingleDocTemplate::CSingleDocTemplate

Bir CSingleDocTemplate nesne oluşturur.

CSingleDocTemplate(
    UINT nIDResource,
    CRuntimeClass* pDocClass,
    CRuntimeClass* pFrameClass,
    CRuntimeClass* pViewClass);

Parametreler

nIDResource
Belge türüyle kullanılan kaynakların kimliğini belirtir. Bu menü, simge, hızlandırıcı tablosu ve dize kaynaklarını içerebilir.

Dize kaynağı, '\n' karakteriyle ayrılmış en fazla yedi alt dizeden oluşur (alt dize dahil değilse yer tutucu olarak '\n' karakteri gereklidir; ancak sondaki '\n' karakterleri gerekli değildir); bu alt dizeler belge türünü açıklar. Alt dizeler hakkında bilgi için bkz . CDocTemplate::GetDocString. Bu dize kaynağı, uygulamanın kaynak dosyasında bulunur. Örneğin:

// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
  IDR_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet"
END

Dize düzenleyicisini kullanarak bu dizeyi düzenleyebilirsiniz; dizenin tamamı, Dize Düzenleyicisi'nde yedi ayrı girdi olarak değil, tek bir girdi olarak görünür.

Bu kaynak türleri hakkında daha fazla bilgi için bkz . Dize Düzenleyicisi.

pDocClass
CRuntimeClass Belge sınıfının nesnesine işaret edin. Bu sınıf, belgelerinizi temsil etmek için tanımladığınız türetilmiş bir CDocumentsınıftır.

pFrameClass
CRuntimeClass Çerçeve penceresi sınıfının nesnesini gösterir. Bu sınıf - türetilmiş bir CFrameWndsınıf veya ana çerçeve pencereniz için varsayılan davranış istiyorsanız kendisi olabilir CFrameWnd .

pViewClass
CRuntimeClass Görünüm sınıfının nesnesini gösterir. Bu sınıf, belgelerinizi görüntülemek için tanımladığınız türetilmiş bir CViewsınıftır.

Açıklamalar

Bir nesneyi dinamik olarak ayırın CSingleDocTemplate ve uygulama sınıfınızın üye işlevinden InitInstance öğesine geçirinCWinApp::AddDocTemplate.

Örnek

// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.

// Establish the document type
// supported by the application
AddDocTemplate(new CSingleDocTemplate(IDR_MAINFRAME,
   RUNTIME_CLASS(CMyDoc),
   RUNTIME_CLASS(CMainFrame),       // main SDI frame window
   RUNTIME_CLASS(CMyView)));

 

// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.

// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.

// IDR_SAMPLERESOURCE is a resource ID string;
// see the CDocTemplate class overview documentation
// for more information on its format.

// The next three parameters use the RUNTIME_CLASS()
// macro to get runtime type information for the doc,
// frame, and view classes that will be associated by
// the template.

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,
   RUNTIME_CLASS(CMyDoc),
   RUNTIME_CLASS(CMainFrame),       // main SDI frame window
   RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
return FALSE;

// After the following call, MFC is aware of the doc
// template and will free it when the application is
// shut down. The doc templates known to MFC will
// automatically be used when CWinApp:OnFileOpen() or 
// CWinApp::OnFileNew() are called.
AddDocTemplate(pDocTemplate);

Ayrıca bkz.

MFC Örnek DOCKTOOL
CDocTemplate Sınıfı
Hiyerarşi Grafiği
CDocTemplate Sınıfı
CDocument Sınıfı
CFrameWnd Sınıfı
CMultiDocTemplate Sınıfı
CView Sınıfı
CWinApp Sınıfı