Q&A

  • 메뉴 컴포넌트의 메뉴아이템 핸들 구하기
OnClick 등에 일일이 코딩하지 않고 Application.OnMessage 나..

훅을 이용하든.. 일괄처리하는 루틴을 만들고 있는데..

메뉴바를 클릭하면 메뉴아이템이 아니라 메뉴바 컴포넌트에

핸들을 가져오기때문에 애를 먹구 있습니다.



여러가지 방법을 시도해보았지만...

메뉴 컴포넌트에 각각의 메뉴아이템에서 발생하는 핸들을 구하는게 쉽지 않네요...

tagMsg 로 핸들을 받아도 msg.hwnd 하면 메뉴 컴포넌트의 핸들이 날라옵니다.

WindowFromPoint 해도... 역시 메뉴 컴포넌트의 핸들이 날라오네요.

하지만 OnClick 이벤트에 코드를 넣어보면 TWinControl 로 타입캐스팅을 해서 가져오긴 했지만...

메뉴아이템에 핸들이 있긴 합니다.

방법이 없을까요...
1  COMMENTS
  • Profile
    최용일 2007.01.04 21:05
    안녕하세요. 최용일입니다.

    Application.OnMessage에서 가능합니다.

    WM_COMMAND메시지를 처리하시면 wParam에 메뉴의 Command ID가 넘어옵니다.

    TMainMenu.FindItem/TPopupMenu.FindItem메소드를 이용해서 어떤 메뉴가 선택되었는지를 알 수 있죠... 이 메소드가 TMenuItem객체를 넘겨주니까 핸들도 알수 있습니다.

    참고로 msg.hwnd는 폼의 핸들이 날라올겁니다.

    ^^ 항상 즐코하세요...