C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24922] Re:Re:Re:그렇지만 마우스의 위치에 따라서 처리를 해야 하는데.. 오또케 ^^;;
skjoon [skjoon] 936 읽음    2003-03-26 15:30
마우스다운 이벤트보다 팝업메뉴가 먼저 실행되는 것 때문에 그럴겁니다.
님의 코드를 약간 바꿔보았습니다.

먼저 LeftView의 PopupMenu 속성을 NULL로 주시고,
PMenu의 AutoPopup속성을 false로 주세요.

//--------------------------------------------------------------------------
void __fastcall TLeftView::TreeMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    TTreeNode* pNode = Tree->GetNodeAt(X, Y);
    if(Button == mbRight) {
        //########################
        TPoint Pnt(X, Y);
        Pnt = ((TTreeView*)Sender)->ClientToScreen(Pnt);
        //########################

        if(!pNode) {   // 현재 트리노드가 선택되지 않았다.
            if(Tree->Items->Count == 0) {  // 노드 자체가 아무것도 없다. (팝업을 띄움)
                   PMenu->PMDelete->Enabled = false;  // 노드가 없으니 삭제메뉴 필요 없음
                PMenu->PMModify->Enabled = false;  // 노드가 없으니 변경메뉴 필요 없음
                //########################
                PMenu->Popup(Pnt.x, Pnt.y);
                //########################
            }
        } else {  // 트리노드가 선택되었다. 즉, 하나 이상의 트리노드가 존재한다. (팝업을 당근 띄움)
               PMenu->PMDelete->Enabled = true;  // 노드가 있으니 삭제메뉴 사용가능
            PMenu->PMModify->Enabled = true;  // 노드가 있으니 변경메뉴 사용가능
            //########################
            PMenu->Popup(Pnt.x, Pnt.y);
            //########################
        }
    }
}
//----------------------------------------------------------------------

컴파일을 해보지는 않았지만.. 이런 방법으로 하셔도 될 것 같습니다.

+ -

관련 글 리스트
24918 [질문]팝업메뉴의 특정메뉴를 변경하는 과정에서 문제가... 김원주 672 2003/03/26
24919     Re:[질문]팝업메뉴의 특정메뉴를 변경하는 과정에서 문제가... 둘리 811 2003/03/26
24921         Re:Re:그렇지만 마우스의 위치에 따라서 처리를 해야 하는데.. 오또케 ^^;; 김원주 848 2003/03/26
24922             Re:Re:Re:그렇지만 마우스의 위치에 따라서 처리를 해야 하는데.. 오또케 ^^;; skjoon 936 2003/03/26
24925                 Re:Re:Re:Re: 우~아~ (우비소녀..) 김원주 794 2003/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.