|
박용우 님이 쓰신 글 :
: 마우스 커서가 폼안에 있는 라벨위에 "마우스 오버" 되었을 때 힌트 화면...을 보여주고 싶은데요
: 물어보고 싶은건 두가지예요
:
: 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만 비교 했는데요
몇개더 인자를 만들어서 비교 하셔야 할듯~
우선 간단히 테스트용으로 만든것만 올립니다.
|