Solved

Confused for adding message handler for runtime created static controls?

Posted on 2004-04-26
5
321 Views
Last Modified: 2013-11-20
I have a 10 runtime create static controls with resource ID; like 100, 101, 102, 103, 104,105,106
107,108,109. I want to have a function to do something for each control when the control is clicked with mouse left button down. What I have done is to add this line to MESSAGE_MAP
ON_COMMAND_RANGE(100, 109, OnClick)and add  afx_msg void OnClick(UINT nID) to header file.
It works.

The one thing that I am little confused about it is  how ON_COMMAND_RANGE knows only
to work when left button is clicked which is exactly what I want! why not work when
RBUTTONDOWN, or MOUSEMOVE, or LBUTTONUP..............................

Even ON_COMMAND_RANGE(100, 109, OnClick) works for me, is it correct to use it?
If not , what is correct message that I should use.

Thanks.
Hanqian

0
Comment
Question by:Hanqian
  • 2
  • 2
5 Comments
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 50 total points
ID: 10919095
The command range uses COMMAND ID's.  They are not the ID's of your controls.
you need
ON_CONTROL_RANGE
ON_CONTROL_RANGE( wNotifyCode, id1, id2, memberFxn )
Parameters
wNotifyCode
The notification code to which your handler is responding.   ****** here is the LBUTTONDOWN

id1
Command ID at the beginning of a contiguous range of control IDs.

id2
Command ID at the end of a contiguous range of control IDs.

memberFxn
The name of the message-handler function to which the controls are mapped.

0
 
LVL 3

Expert Comment

by:akalmani
ID: 10919136
You can as well use ON_NOTIFY_RANGE( wNotifyCode, id, idLast, memberFxn )

Specify any of these values of your interest for wNotifyCode
NM_CLICK User clicked left mouse button in the control
NM_DBLCLK User double-clicked left mouse button in the control
NM_RCLICK User clicked right mouse button in the control
NM_RDBLCLK User double-clicked right mouse button in the control

id The first ID of the static control
id last  ...The last ID of the static control

On_NOTIFY_RANGE(NM_CLICK, 100, 110, OnClick)
0
 
LVL 3

Expert Comment

by:akalmani
ID: 10919176
oops please ignore my comments..AndyAinscow is right. Seems i am saturated for today
0
 

Author Comment

by:Hanqian
ID: 10919461
When I compile, it complains:

On_NOTIFY_RANGE' : undeclared identifier
0
 

Author Comment

by:Hanqian
ID: 10919475
ON_CONTROL_RANGE( wNotifyCode, id1, id2, memberFxn )
 works well.

Thanks.

Hanqian
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Here is how to use MFC's automatic Radio Button handling in your dialog boxes and forms.  Beginner programmers usually start with a OnClick handler for each radio button and that's just not the right way to go.  MFC has a very cool system for handli…
Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
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.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

707 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now