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
CDocument
tü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ı , ,
CScrollView
CFormView
veyaCEditView
öğesindenCView
türetebilirsiniz. (Doğrudan da kullanabilirsinizCEditView
.)Görünümü içeren bir çerçeve penceresi sınıfı. SDI belge şablonu için bu sınıfı öğesinden
CFrameWnd
türetebilirsiniz; ana çerçeve penceresinin davranışını özelleştirmeniz gerekmiyorsa, kendi sınıfınızı türetmeden doğrudan kullanabilirsinizCFrameWnd
.
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 CSingleDocTemplate
hakkında daha fazla bilgi için bkz . Belge Şablonları ve Belge/Görünüm Oluşturma İşlemi.
Devralma Hiyerarşisi
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 CDocument
sınıftır.
pFrameClass
CRuntimeClass
Çerçeve penceresi sınıfının nesnesini gösterir. Bu sınıf - türetilmiş bir CFrameWnd
sı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 CView
sı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ı