|
안녕하세요... 문보석입니다...
팝업메뉴의 아이템들을 다음과 같이 구성했습니다...
가장 큰 목록은 a , b , c 라고 세가지로 했구요...
다음 a 의 서브아이템이 1 , 2 , 3 이라고 또 세가지가 있습니다...
b 의 서브아이템은 4 , 5 가 있다고 하고
c 의 서브아이템은 6 , 7 이 있다고 합시다...
이때 a,b,c 들의 서브아이템( 1 ~ 7 )이 클릭되었을때 이것들을 구분하는 인덱스를 구성하려고
하는데 하나 하나 클릭이벤트핸들러를 만들어서 인덱스를 표시 해줄수는 없잖아요...
그래서 a 의 서브아이템을 모두 한꺼번에 선택해서 클릭이벤트핸들러를 하나에 만들어주니까
그 핸들러의 디폴트이름은 한꺼번에 선택한 아이템중에 가장 나중에 선택한 아이템의 이름을
따서 N31click() 이라고 만들어지더군요...
이 핸들러에 다음과 같이 써넣어습니다..
void __fastcall TForm1::N31Click(TObject *Sender)
{
Edit1->Text = (N31->Parent)->MenuIndex; // 클릭한 아이템의 parent 인덱스를 구함
Edit2->Text = N31->MenuIndex; // 클릭한 아이템의 인덱스를 구해야함!!!
}
당연히 여기서 에디트박스2에는 항상 일정한 인덱스 값(2)이 표시되겠죠...
물론 여기에서 에디트박스1에도 '0'이라는 값이 일정하지만 다른 서브아이템을 클릭하면 당근 자신의
parent 인덱스를 구하구요...
결국 에디트박스2에 제가 선택한 아이템의 인덱스를 구하는 법을 못찾아내고 이렇게 질문드립니다...
클릭한 아이템의 핸들이나 포인터 같은 것을 어떤식으로 구해야 하는지 궁금합니다...
저기 저 Sender라는 놈을 통해 뭔가 알아낼수 있을것 같아 고민해보기도 했지만 모르겠더군요..^^;;;;
너무 장황하게 설명을 드렸는데 제 의도는 전달될것 같습니다...
그럼 안녕히...
|