달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Macro'에 해당되는 글 1건

  1. 2011.10.13 [MFC] ON_COMMAND_RANGE 매크로

MFC에서 연속적으로 연결된 resource id들의 command에 대해서 

하나의 function으로 처리할 수 있는 macro.... 


 
ON_COMMAND_RANGE(id1, id2, memberFxn )
Parameters

id1

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

id2

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

memberFxn

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

Remarks

The range of IDs starts with id1 and ends with id2.

Use ON_COMMAND_RANGE to map a range of command IDs to one member function. Use ON_COMMAND to map a single command to a member function. Only one message-map entry can match a given command ID. That is, you can't map a command to more than one handler. For more information on mapping message ranges, see Handlers for Message-Map Ranges.

There is no automatic support for message map ranges, so you must place the macro yourself.

Example

// 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);
  }
  
Posted by 촌돌애비
|