How Do I Use a Single Message-Response Function To Respond to Different Command
Messages? 
 
 
 
 
 
Sometimes, a series of command messages may be related in such a way that it makes more
sense to handle them all with a single message-response func-tion than to create a
message-response function for each. For example, a Line menu may enable a user to select
one of several line thicknesses. It's logical to handle all Line menu commands in a single
function whose job it is to set the line width. To perform this trick, you need to use
EV_COMMAND_AND_ID macros in your window class's response table. 
 The Solution  
First, create a response table that contains an EV_COMMAND_AND_ID macro for each
message you want handled by the single message-response function, using the same function
as the macro's second argument: 
DEFINE_RESPONSE_TABLE1(TWndw, TFrameWindow) 
  EV_COMMAND_AND_ID(CM_COHHAND1, CmCommand), 
  EV_COMMAND_AND_ID(CM_COMMAND2, CmCommand), 
  EV_COMMAND_AND_ID(CM_COMHAND3, CmCommand), 
END RESPONSE TABLE; 
The EV_COMMAND_AND_ID macro takes exactly the same arguments as the EV_COMMAND macro:
the message ID and the name of the function that will handle that message. 
The difference is that, when the program calls the message-response function, it sends
along the ID of the message that triggered the call. In the message-response function, use
this parameter to determine which message you need to respond to: 
void TWndw::CmCommand(WPARAM messageld) 
{ 
  switch (messageld) { 
    case CM_COMMAND1 /* Handle message 1 */ 
      break; 
    case CM_COMMAND2 /* Handle message 2 */ 
      break; 
    case CM_COMMAND3 /* Handle message 3 */ 
      break; 
  } 
}