|
만해 님이 쓰신 글 :
: 박용우 님이 쓰신 글 :
: : 마우스 커서가 폼안에 있는 라벨위에 "마우스 오버" 되었을 때 힌트 화면...을 보여주고 싶은데요
: : 물어보고 싶은건 두가지예요
: :
: : 1. 라벨의 마우스 오버 이벤트를 어떻게... 구현 하죠??
: :
: :
: : 2. 힌트화면을 어떻게 만드는 거죠?
:
: 안녕하세요 만해 입니다.
:
: 저도 아직 초 슈퍼 초보인데~
:
: 간단히 어떤식으로 하면 되겠다고 생각이 나서
:
: 방금 해 보고 구현이 되길래
:
: 지금 올려 드립니다.
: < Unit1.h 파일에 추가된 내용 >
: public :
: void OnMouserOver(TWMMouse WMMouse);
: protected:
: BEGIN_MESSAGE_MAP
: VCL_MESSAGE_HANDLER(WM_MOUSEMOVE,TWMMouse , OnMouserOver)
: END_MESSAGE_MAP(TForm)
:
: < Unit1.cpp 파일의 추가 내용 >
: void TForm1::OnMouserOver(TWMMouse WMMouse)
: {
: if ( WMMouse.XPos < Label1->Left )
: if ( WMMouse.YPos < Label1->Top )
: {
: Label1->Hint = "힌트 보이는 루틴 예제입니다";
: Label1->ShowHint = true;
: }
: //TODO: Add your source code here
: }
:
: 간단히 설명 드리면요
:
: 메세지맵을 설정해서요. 폼위의 마우스 오버 메세지를 가져와서
:
: 그 메세지를 인자로 가지는 OnMouseOver 함수를 호출 하고요
:
: 함수에서는 현재 마우스의 XPos, YPos 를 가져와서 Caption 위에 있음
:
: Hint에 보여주고자 하는 힌트를 집어 넣고
:
: ShowHint = true;로 고치면 바로 힌트가 뜬답니다.
:
: 그런데 함수안의 내용을 조금 고쳐셔야 되겠네요
:
: TWMMouse.XPos TWMMouse.YPos하고 Label1.Top , Label1.Left만 비교 했는데요
:
: 몇개더 인자를 만들어서 비교 하셔야 할듯~
:
: 우선 간단히 테스트용으로 만든것만 올립니다.
:
하하~
뻘짓 했네요
그냥 간단히
Label1->Hint = "암거나";
Label1->ShowHint = true; 이렇게 하면 간단한건데 왜 저런 뻘짓을 했는지 쩝~
|