Re: Using custom dialog template for Pagesetup dialog

"Jeff Henkels" <jeff-v/i/[email protected]>
Newsgroups gmane.comp.windows.wtl
Message-ID <[email protected]>
"arasakumaran" <arasakumaran-/[email protected]> wrote 
in message news:[email protected]
> Thanks Mike.  I had seen that about the same time.  I now can get my 
> dialog. But have not
> yet figured out how to use the HookProc, or even if I need to do it. May 
> be I just place
> a message map and see if the messages get routed to my class.

I just went through this with CFileDialog.  You don't need to do a hookproc;
the base class implements its own hookproc & calls overridable functions for
the various uMsg values the hookproc receives.  Your message map should work
fine without any modification.  Some other weirdnesses I noticed:

1.  In your WM_INITDIALOG handler, the HWND parameter will be NULL -- the
class's m_hWnd is your template dialog, which is a child control of the
common dialog.  GetParent() returns the hDlg for the common dialog, so
GetParent().GetDlgItem(x) will return the appropriate common dialog control,
and GetDlgItem(x) will return the appropriate control in your template
dialog.

2.  If you're going to move controls around in your WM_INITDIALOG handler,
remember that your template dialog is itself a child control of the common
dialog.  So when you get the windowrect for one of your template controls,
and if you're using SetWindowPos to move the control, you'll need to do a
GetParent().ScreenToClient on the window rect to make its coordinates
relative to the common dialog.

3.  Again in the WM_INITDIALOG handler, the LPARAM parameter is a pointer to
the OPENFILENAME (or in your case PAGESETUPDLG) struct.  This probably won't
be too useful since the struct is a public member of the base class, and is
thus easily accessible anyway.

4.  Make sure your class derives from CPageSetupDialogImpl, not
CPageSetupDialog.  Also make sure your message map includes a CHAIN_MSG_MAP
entry to CPageSetupDialogImpl.






------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/wtl/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/wtl/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.