ON_COMMAND_RANGE
Use essa macro para mapear um intervalo contíguo de IDs de comando para uma função de manipulador de mensagem única.
ON_COMMAND_RANGE(id1, id2, memberFxn )
Parâmetros
id1
ID de comando no início de um intervalo contíguo de IDs de comando.id2
ID de comando no final de um intervalo contíguo de IDs de comando.memberFxn
O nome da função de manipulador de mensagens para o qual os comandos são mapeados.
Comentários
O intervalo de IDs começa com id1 e termina com id2.
Use ON_COMMAND_RANGE para mapear um intervalo de IDs de comando para a função de um membro.Use ON_COMMAND para mapear um único comando para uma função de membro.Apenas uma entrada de mapa de mensagens pode corresponder a uma identificação de determinado comando.Ou seja, você não pode mapear um comando para mais de um manipulador.Para obter mais informações sobre intervalos de mensagem de mapeamento, consulte manipuladores para intervalos de mapa da mensagem.
Não há nenhum suporte automático para intervalos de mapa da mensagem, portanto, você deve colocar a macro.
Exemplo
// The code fragment below shows how to use ON_COMMAND_RANGE macro
// to map a contiguous range of command IDs to a single message
// handler function (i.e. OnRangeCmds() in the sample below). In
// addition, it also shows how to use CheckMenuRadioItem() to check a
// selected menu item and makes it a radio item.
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
ON_COMMAND_RANGE(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3, &CChildFrame::OnRangeCmds)
END_MESSAGE_MAP()
void CChildFrame::OnRangeCmds(UINT nID)
{
CMenu* mmenu = AfxGetMainWnd()->GetMenu();
CMenu* submenu = mmenu->GetSubMenu(5);
submenu->CheckMenuRadioItem(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3,
nID, MF_BYCOMMAND);
}
Requisitos
Cabeçalho: afxmsg_.h