Re: How to get the Resource ID associate with this FrameWnd?
On Fri, 28 Jul 2006 00:43:13 +0800, "Tham" <thamyt@streamyx.com> wrote:
Hi
I have a MDI application and intend to use a single frame class (CMyFrame
derived from CMDIChildWnd) to create multiple frames.
See the code below:
----------------------------------------------------------------------------------------------------------
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_Resource1TYPE,
RUNTIME_CLASS(CTest1Doc),
RUNTIME_CLASS(CMyFrame), // custom MDI child
frame
RUNTIME_CLASS(CTest1View));
AddDocTemplate(pDocTemplate);
pDocTemplate = new CMultiDocTemplate(IDR_Resource2TYPE,
RUNTIME_CLASS(CTest2Doc),
RUNTIME_CLASS(CMyFrame), // custom MDI child
frame
RUNTIME_CLASS(CTest2View));
AddDocTemplate(pDocTemplate);
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_Resource3TYPE,
RUNTIME_CLASS(CTest3Doc),
RUNTIME_CLASS(CMyFrame), // custom MDI child
frame
RUNTIME_CLASS(CTest3View));
AddDocTemplate(pDocTemplate);
----------------------------------------------------------------------------------------------------------
However in this frame class, how do I get the Resource ID associate with
this framewnd?
From the frame, get the document, and from the document, get the document
template. Then it gets murky. :) While CDocTemplate stores the resource ID
in m_nIDResource, this member variable is protected, and it doesn't appear
to be exposed to outside users. So you'd have to derive a new class from
CMultiDocTemplate to get to it. That said, there is limited access to the
string associated with the ID through GetDocString. As an alternative to
deriving a new class, you could perhaps maintain a map between document
template pointers and the IDs associated with them.
--
Doug Harrison
Visual C++ MVP