Dynamic Form View Dialog

I am using the SDI Doc/View architecture (for the purposes of writing an OLE server) with my View class inheriting from CFormView.  Does anyone know how I can dynamically decide from multiple dialog resources to use with the initial view that is loaded at runtime?  I.e. depending on the hardware, I may want to use a dialog resource that is small, medium or large etc.

I don't really understand the doc/view architecture well enough to know what is going on... I can see that the default constructor created by AppWizard is CMyView::CMyView() : CFormView(CMyView::IDD) and that it will probably have to be changed to something like CMyView::CMyView(int nID) : CFormView(nID), but I'm not sure where in the doc/view creation process that the view is created so I can insert the ID of the dialog resource in the CMyView constructor.

Anyway, thanks in advance for the help
Garrett Headley
headleyAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

piano_boxerCommented:
A good place to set the dialog resource ID to use would be in the virtual function Create() (NOT WM_CREATE !!!). Override the Create() function of your formview class and modify it as follows:

BOOL CMyFormView::Create(
    LPCTSTR lpszClassName, LPCTSTR lpszWindowName,
    DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
    UINT nID, CCreateContext* pContext)
{
    // Set resource ID to be used
    m_lpszTemplateName = MAKEINTRESOURCE(IDD_MY_DIALOG);

    // Do normal processing
    return CFormView::Create(lpszClassName, lpszWindowName,
        dwStyle, rect, pParentWnd, nID, pContext);
}

---
I will not go into internal MFC doc/view details here, but just suggest that you get a copy of the book 'MFC Internals' by Shepherd, Wingo (ISBN: 0-201-40721-3). This book tells you everything you need to know about MFC.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
headleyAuthor Commented:
Works fine for me!!  

Thanks,
Garrett
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Programming

From novice to tech pro — start learning today.