|
폼 이벤트중에 onMouseWheel 이벤트가 있는데
이 것을 이용하시는게 어떻겠습니까.
void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift,
int WheelDelta, TPoint &MousePos, bool &Handled)
{
A->SetPosition(A->PositionX, A->PositionY-WheelDelta);
}
이렇게...
그 다음엔...다른 폼에서 위의 코드가 있는 폼을 호함시키고(Include Unit Hdr...)
마우스휠 이벤트에 위의 함수를 연결하면..
아마...
시간이 엄써서 테스트는 못해 봤습니다.
한번 해 보세요...
//---------------------------------------------------------------------------
allow 님이 쓰신 글 :
: void __fastcall TAForm::ApplicationEvents1Message(tagMSG &Msg,
: bool &Handled)
: {
: int zDelta;
: POINT p;
: if(Msg.message==WM_MOUSEWHEEL){
: GetCursorPos(&p);
: if(PtInRect(&(this->ClientRect),this->ScreenToClient(p))){
: // Msg 를 확인하면 휠의 정보를 알수 있습니다.
: zDelta = GET_WHEEL_DELTA_WPARAM(Msg.wParam);
: A->SetPosition(A->PositionX, A->PositionY-zDelta);
: }
: }
: }
:
: 이런 식으로 마우스 휠을 사용해서 스크롤을 움직이려고 하는데
: 다른 폼이 뜨면 같이 움직이더군요...
:
: 그래서 그런데 다른 폼이 뜨면 그폼에서만 작동하고 다른 폼이 없을때만 작동하게 할순 없나요?
: 따로 뜨는 폼이 여러개라 if(B)return; 이런식으로 하기엔 너무 노가다란 생각이 들어서요...
: 답변부탁드리겠습니다.
|