?
Solved

Question on Accelerator

Posted on 1998-11-14
10
Medium Priority
?
255 Views
Last Modified: 2013-11-20
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!!!
0
Comment
Question by:justinng
  • 6
  • 4
10 Comments
 
LVL 1

Accepted Solution

by:
atari earned 200 total points
ID: 1324686
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
 

Author Comment

by:justinng
ID: 1324687
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
 
LVL 1

Expert Comment

by:atari
ID: 1324688
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
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 

Author Comment

by:justinng
ID: 1324689
ic... okie thanks! my email address is justinng@singnet.com.sg
0
 
LVL 1

Expert Comment

by:atari
ID: 1324690
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
 

Author Comment

by:justinng
ID: 1324691
Good evening from Singapore... heheee..... your help is very much appreciated!!!
0
 

Author Comment

by:justinng
ID: 1324692
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
 

Author Comment

by:justinng
ID: 1324693
Adjusted points to 50
0
 
LVL 1

Expert Comment

by:atari
ID: 1324694
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
 

Author Comment

by:justinng
ID: 1324695
hehee.. thanks! I've solved the problem!!!! heheee... thanks alot!!!!!!
Cya around!
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article, I'll describe -- and show pictures of -- some of the significant additions that have been made available to programmers in the MFC Feature Pack for Visual C++ 2008.  These same feature are in the MFC libraries that come with Visual …
Introduction: Database storage, where is the exe actually on the disc? Playing a game selected randomly (how to generate random numbers).  Error trapping with try..catch to help the code run even if something goes wrong. Continuing from the seve…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
In this video I will demonstrate how to set up Nine, which I now consider the best alternative email app to Touchdown.
Suggested Courses
Course of the Month5 days, 17 hours left to enroll

588 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question