|
박애영 님이 쓰신 글 :
: 메인메뉴는 위치가 폼의 바로 아래부분에만 위치하니깐
: 그렇게 생긴 것을 제가 원하는 위치에다가 만들고 싶거든요..
: 그래서 팝업메뉴를 이용하면 어떨까?싶은데요..
:
: 팝업메뉴는 오른쪽 마우스 버튼을 눌러야 되잖아요...
: 그걸 왼쪽을 눌렸는데 오른쪽이 눌려진 것 처럼 인식할수 있었음 좋겠거든요...
:
: 그러니깐 왼쪽을 눌려서 팝업메뉴가 나타나도록 하고 싶어요...위치도 누르는 위치에
: 따라 변하는 것이 아니라...지정한 곳 옆에서 나타나도록..
: '시작'버튼을 보면 꼭 그렇게 생겼잖아요....
:
안녕하세요..
우선 PopupMenu의 AutoPopup을 False로 합니다.
그리고, TButton의 OnMouseDown에 다음의 코드를 합니다.
void __fastcall TForm1::Button1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbLeft) //왼쪽버튼인지 검사.
{
POINT Pos;
GetCursorPos(&Pos);
Pos.x = Pos.x - X;
Pos.y = Pos.y + (Button1->Height - Y);
PopupMenu->Popup(Pos.x, Pos.y);
}
}
팝업메뉴의 팝업위치는 스크린위치를 기준으로 합니다.
그래서, 띄우기전에 마우스가 눌린 위치를 구하고 위와 같이 코딩을 하면
버튼의 바로 아래에 메뉴가 뜹니다.
팝업하고싶은 위치를 적절히 계산하여 수행하세요.
그럼..
|