Re: How to subclass an MFC window?
"David Lowndes" <DavidL@example.invalid> wrote in message
news:44k926hsb0voea68aeerl1r2vdq21i9btc@4ax.com...
Nowadays CMainFrame is derived from CMDIFrameWndEx and this has a member
CMDIClientAreaWnd m_wndClientArea;
and (I think) because a CWnd object already exists for the MDI client
area,
then SubclassWindow() doesn't work on it.
I wonder if you can handle the message some other way - perhaps in the
application's PreTranslateMessage handler?
Sounds like a plausible idea for one message for that particular window -
thanks.
But it sounds pretty horrible for a whole property page and all its
controls. BUT.....
Please forgive me if I think aloud here, as something might be dawning on me
in real time as I type.
The App Wizard has given me:
void CMainFrame::OnViewCustomize()
{
CMFCToolBarsCustomizeDialog* pDlgCust
= new CMFCToolBarsCustomizeDialog(this, TRUE);
pDlgCust->EnableUserDefinedToolbars();
pDlgCust->Create();
}
so I can derive a class from CMFCToolBarsCustomizeDialog, and use that
instead.
This is a property sheet with a number of property pages, including
CMFCToolBarsKeyboardPropertyPage* m_pKeyboardPage;
which allows the user to set a new keyboard shortcut. No whilst I can't
easily get at the property *page*, the property *sheet* (which I *can*
subclass) has lots of virtual members, including
virtual BOOL OnAssignKey( ACCEL *pAccel ) { return TRUE; }
It *looks* like this gets called with the newly selected accelerator, and I
can do what I want with it and return FALSE to tell MFC to ignore it!
This is looking very promising!!!!!!!!
Background:
Shortcut keys like ^ > + - are very useful mnemonics for music applications.
Equally Ctrl+> etc are very useful shortcuts.
But I want it to appear as Ctrl+> on the menu, and not Ctrl+Shift+.
And I want to define these shortcuts for all national keyboards (even if >
isn't Shift+.)
Accelerators are not up to the job, so I rolled my own method, built into
WM_KEYDOWN and WM_CHAR processing. Maybe I *will* be able to integrate it
with the new customisable toolbars!!!!
A nice thought on which to end the week (especially as I'm out all weekend
playing on bandstands.)
Dave
--
David Webber
Mozart Music Software
http://www.mozart.co.uk
For discussion and support see
http://www.mozart.co.uk/mozartists/mailinglist.htm