Confused for adding message handler for runtime created static controls?

Posted on 2004-04-26
Medium Priority
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.


Question by:Hanqian
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 44

Accepted Solution

AndyAinscow earned 150 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( wNotifyCode, id1, id2, memberFxn )
The notification code to which your handler is responding.   ****** here is the LBUTTONDOWN

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

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

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


Expert Comment

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)

Expert Comment

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

Author Comment

ID: 10919461
When I compile, it complains:

On_NOTIFY_RANGE' : undeclared identifier

Author Comment

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



Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Introduction: Dialogs (2) modeless dialog and a worker thread.  Handling data shared between threads.  Recursive functions. Continuing from the tenth article about sudoku.   Last article we worked with a modal dialog to help maintain informat…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
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.
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Suggested Courses

764 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