Question on Accelerator

Hi there,
         I've assigned a virtual key "Ctrl + A" to try to bring up a dialog box but however, the dialog box doesn't apppear after I pressed "Ctrl + A"... why is this so?? How can I solve it?

Any help offered is very much appreciated!!!
justinngAsked:
Who is Participating?
 
atariConnect With a Mentor Commented:
You have to define a virtual key in your accelerator list in the resource, I think, that is what you have implemented.
ID                                       Key         Type
CM_SHOW_DIALOG     Ctrl+A     VIRTUAL

Then in your resource.h-file you have to manually type in the following line:
#define CM_SHOW_DIALOG 101 // or any other ID-number

Then in the class where you want to show the dialog box from, you have to implement in the .cpp-file a message-handler like this

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
      //{{AFX_MSG_MAP(CMainFrame)
      ON_COMMAND(CM_SHOW_DIALOG,OnShowDialog)
      //}}AFX_MSG_MAP
END_MESSAGE_MAP()

Then in your .cpp-file declare the member function that shows your dialog:

void CMainFrame::OnShowDialog()
{
  CYourDialog dlg;
  if (dlg.DoModal())
{
 // do what you want
}
}

and in your .h-file you have to declare this member-function:
//{{AFX_MSG(CMainFrame)
    afx_msg void OnAlleItemsSelektieren();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

That's it,
bye
atari
0
 
justinngAuthor Commented:
Hi atari... when I tried to compile it.... it shows me an error at the code segment shown below:
------------------------
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
   //{{AFX_MSG_MAP(CMainFrame)
   ON_COMMAND(CM_SHOW_DIALOG,OnShowDialog)
   //}}AFX_MSG_MAP
   END_MESSAGE_MAP()
------------------------
By the way, my ID for the dialog box, that I wanted it to pop up by pressing Ctrl+A, is
IDD_MY_DIALOG so I replaced CM_SHOW_DIALOG by IDD_MY_DIALOG and I think this should be fine. But the error occur at ON_COMMAND(IDD_MY_DIALOG, OnShowDialog) and the error message is something about undeclared stuffs.... Please
help thanks! I don't quite understand the last code segment also, care to explain? :)
0
 
atariCommented:
Hi, justinng,
give me your email-address and I will send you a small code snippet by email.

I don't know what you have made wrong, don't know the compiler error message, my code is correct, putting your ID-number as first parameter of ON_COMMAND is wrong, because I only connect the Ctrl-A with an self defined ID (called CM_SHOW_DIALOG) declared in the resource file. This ID is an ID for a message handler, that has nothing to do with the ID of your dialog box. I only want, that the program goes into the routine OnShowDialog() if I press Ctrl+A and nothing more. Then in OnShowDialog() I can do what I want to do, show the dialog or something else. If your code were correct, then you could only show the dialog box but nothing else, you couldn't test, what the user has done within the dialog box, that's what I have done. You can't do all things you want to do with class wizard, sometimes you have to change the resource file manually and put the ID-numbers you wish in there.

Send me your email-address and I will send you a zip-file, that will describe everything.

Bye,
atari
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
justinngAuthor Commented:
ic... okie thanks! my email address is justinng@singnet.com.sg
0
 
atariCommented:
Hello, good morning from germany,
I will send you in the next twenty minutes a small project, that I write for you, only to show you the Ctrl-A stuff. It will show you the About dialog as .zip-file.

Bye,
atari
0
 
justinngAuthor Commented:
Good evening from Singapore... heheee..... your help is very much appreciated!!!
0
 
justinngAuthor Commented:
okie I know my mistakes hehee.... by the way I have successfully compiled my codes but when I pressed Ctrl+A the dialog did not pop up. The pop-up dialog is modeless.... does it matter?? And I have a menu which also associates with the dialog box. So the user either call up the dialog box from the menu or pressing Ctrl+A. Please help, I'm almost there... hehe... thanks!
0
 
justinngAuthor Commented:
Adjusted points to 50
0
 
atariCommented:
How about send me your code as .zip and explain exactly what you wanted to do.

My email address mkuelsh@aol.com

I've been looking on this page in a few hours again.

Bye,
atari

But don't think, that I explain the whole project for you. This discussion board is only for single questions, not for whole projects. That was, what I have to learn first, when I entered this discussion board for the first time.

Bye,
atari
0
 
justinngAuthor Commented:
hehee.. thanks! I've solved the problem!!!! heheee... thanks alot!!!!!!
Cya around!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.