반응형


개발자에게 추가 개발요청이 들어온 경우 부득이하게 같은 UI를 추가해야 하는 경우가 있다.

그럴 경우 하나의 UI에서 동작하는 이벤트 함수를 02 또는 다른 숫자를 붙여가며 불필요하게 추가해야 할 경우가 있다(다른 방법도 물론 있겠다).


그럴 경우 사용하기 좋은 기능 하나를 소개하고자 글을 쓴다.


-----------------------------------------------------------------------------------------------------

보통 UI 상의 버튼 클릭 이벤트 등을 처리하기 위해서는

ON_COMMAND(IDC_BTN, &CTestDlg::OnBtnClick)

의 경우로 해결해 주는 것이 보통이다.


하지만 IDC_BTN이 초기 설계보다 더 필요해 질 경우

ON_COMMAND(IDC_BTN01, &CTestDlg::OnBtnClick01)

ON_COMMAND(IDC_BTN02, &CTestDlg::OnBtnClick02)

이런 방식으로 해결해야 할 경우가 있다.


이런 경우는 추가적으로 커맨드를 등록할 필요 없이 다음과 같은 방법을 사용하면 된다.


ON_COMMAND_RANGE(IDC_BTN01, IDC_BTN02,  &CTestDlg::OnBtnClick)

// .............................................(첫 버튼     , 마지막버튼,  공통으로 처리할 함수 ) 


-----------------------------------------------------------------------------------------------------

ex)

(h)

afx_msg void OnBtnClick(UINT uiID);

(cpp)

ON_COMMAND_RANGE(IDC_BTN01, IDC_BTN02,  &CTestDlg::OnBtnClick)


void CTestDlg::OnBtnClick(UINT uiID)

{

swicth (uiID)

{

case IDC_BTN01:

.......; break;

case IDC_BTN02:

.......; break;

default:

break;

}


(주의사항)

ON_COMMAND_RANGE 에서 첫 컨트롤과 마지막 컨트롤은 Resource.h 상에 연속으로 선언되어 있어야 한다. 연속으로 선언되지 않아 다른 컨트롤이 OnBtnClick 함수를 탈 경우를 주의.



반응형
Posted by tislqhf

블로그 이미지
개인적인 공부자료 정리하는 공간
tislqhf

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.4
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함