|
From: Les on 7 May 2008 12:05 In a MFC dll I have a simple dialog consisting only of a multiline rich edit box and a menu. One of the dropdown menu choices is to Search the contents of the edit box with Find, Next and Previous options. All is working fine but then I thought I would like to add function key accelerators for next (F3) and previous (Shift+F3) as shown below. But pressing F3 or Shift+F3 nothing happens and Spy++ shows no messages are being sent to the dialog when the keys are pressed. We have another small application which uses similar accelerators without any problem but that is on a mainframe window not a dialog. Any ideas if I have missed something ? In the "rc" resource file : (the literal strings are replaced by language specific strings) The menu is : IDR_PADVIEW MENU BEGIN <snip> POPUP "Search" BEGIN MENUITEM "Find", IDC_FIND MENUITEM "Next", IDC_NEXT MENUITEM "Previous", IDC_PREVIOUS END <snip> END The accelerator definition : IDR_PADVIEW ACCELERATORS BEGIN VK_F3, IDC_NEXT, VIRTKEY, NOINVERT VK_F3, IDC_PREVIOUS, SHIFT, VIRTKEY, NOINVERT END The dialog definition has a "MENU IDR_PADVIEW" entry The cpp file has : BEGIN_MESSAGE_MAP(CPadView, CDialog) //{{AFX_MSG_MAP(CPadView) <snip> ON_COMMAND(IDC_FIND, OnFind) ON_COMMAND(IDC_NEXT, OnNext) ON_COMMAND(IDC_PREVIOUS, OnPrevious) <snip> //}}AFX_MSG_MAP END_MESSAGE_MAP() Thanks for any suggestions Les
From: Sheng Jiang[MVP] on 7 May 2008 14:04 call TranslateAccelerator in PreTranslateMessage see http://msdn.microsoft.com/en-us/library/cc301409.aspx -- Sheng Jiang Microsoft MVP in VC++ "Les" <l.neilson(a)nospam.acecad.co.uk> wrote in message news:fvsjdo$brj$1(a)newsreader.cw.net... > In a MFC dll I have a simple dialog consisting only of a multiline rich edit > box and a menu. > One of the dropdown menu choices is to Search the contents of the edit box > with Find, Next and Previous options. > All is working fine but then I thought I would like to add function key > accelerators for next (F3) and previous (Shift+F3) as shown below. But > pressing F3 or Shift+F3 nothing happens and Spy++ shows no messages are > being sent to the dialog when the keys are pressed. > > We have another small application which uses similar accelerators without > any problem but that is on a mainframe window not a dialog. > > Any ideas if I have missed something ? > > > In the "rc" resource file : (the literal strings are replaced by language > specific strings) > > The menu is : > IDR_PADVIEW MENU > BEGIN > <snip> > POPUP "Search" > BEGIN > MENUITEM "Find", IDC_FIND > MENUITEM "Next", IDC_NEXT > MENUITEM "Previous", IDC_PREVIOUS > END > <snip> > END > > The accelerator definition : > IDR_PADVIEW ACCELERATORS > BEGIN > VK_F3, IDC_NEXT, VIRTKEY, NOINVERT > VK_F3, IDC_PREVIOUS, SHIFT, VIRTKEY, NOINVERT > END > > The dialog definition has a "MENU IDR_PADVIEW" entry > > > The cpp file has : > BEGIN_MESSAGE_MAP(CPadView, CDialog) > //{{AFX_MSG_MAP(CPadView) > <snip> > ON_COMMAND(IDC_FIND, OnFind) > ON_COMMAND(IDC_NEXT, OnNext) > ON_COMMAND(IDC_PREVIOUS, OnPrevious) > <snip> > //}}AFX_MSG_MAP > END_MESSAGE_MAP() > > > Thanks for any suggestions > Les > >
From: Les on 8 May 2008 06:02 Thanks. I have now got it working . Les "Sheng Jiang[MVP]" <sheng_jiang(a)hotmail.com.discuss> wrote in message news:OOO9BSGsIHA.3780(a)TK2MSFTNGP03.phx.gbl... > call TranslateAccelerator in PreTranslateMessage > see http://msdn.microsoft.com/en-us/library/cc301409.aspx > > -- > Sheng Jiang > Microsoft MVP in VC++ > "Les" <l.neilson(a)nospam.acecad.co.uk> wrote in message > news:fvsjdo$brj$1(a)newsreader.cw.net... >> In a MFC dll I have a simple dialog consisting only of a multiline rich > edit >> box and a menu. >> One of the dropdown menu choices is to Search the contents of the edit >> box >> with Find, Next and Previous options. >> All is working fine but then I thought I would like to add function key >> accelerators for next (F3) and previous (Shift+F3) as shown below. But >> pressing F3 or Shift+F3 nothing happens and Spy++ shows no messages are >> being sent to the dialog when the keys are pressed. >> >> We have another small application which uses similar accelerators without >> any problem but that is on a mainframe window not a dialog. >> >> Any ideas if I have missed something ? >> >> >> In the "rc" resource file : (the literal strings are replaced by language >> specific strings) >> >> The menu is : >> IDR_PADVIEW MENU >> BEGIN >> <snip> >> POPUP "Search" >> BEGIN >> MENUITEM "Find", IDC_FIND >> MENUITEM "Next", IDC_NEXT >> MENUITEM "Previous", IDC_PREVIOUS >> END >> <snip> >> END >> >> The accelerator definition : >> IDR_PADVIEW ACCELERATORS >> BEGIN >> VK_F3, IDC_NEXT, VIRTKEY, NOINVERT >> VK_F3, IDC_PREVIOUS, SHIFT, VIRTKEY, NOINVERT >> END >> >> The dialog definition has a "MENU IDR_PADVIEW" entry >> >> >> The cpp file has : >> BEGIN_MESSAGE_MAP(CPadView, CDialog) >> //{{AFX_MSG_MAP(CPadView) >> <snip> >> ON_COMMAND(IDC_FIND, OnFind) >> ON_COMMAND(IDC_NEXT, OnNext) >> ON_COMMAND(IDC_PREVIOUS, OnPrevious) >> <snip> >> //}}AFX_MSG_MAP >> END_MESSAGE_MAP() >> >> >> Thanks for any suggestions >> Les >> >> > >
|
Pages: 1 Prev: How can I search through installed printers and select one? Next: OT: CodeGear is sold |