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
[75854] Re:Re: 배우고 싶습니다
초심 [] 1218 읽음    2020-05-14 14:48
제가 나름대로 짜본 코드는
명함도 내밀지 못하겠습니다

혹시 운영하고 계신 사이트나 블로그 있으면 알려주십시오
C++ 테크닉 빌더님께 배우고 싶습니다


빌더(TWx) 님이 쓰신 글 :
: 초보 님이 쓰신 글 :
: : 여기저기 찾아봐도 답이 안나와서 문의드립니다 워낙 초보라 ..ㅎㅎ
: :
: : 특정 폼 안에서 마우스 클릭한 상태로 드래그를 하는데 클릭된 상태에서는 폼 밖으로 이동할수없게 하고싶거든요
: :
: : MouseDown 이벤트에서 뭔가를 해야할것 같은데...
: :
: : 찾아보니 GetClientRect를 사용하면 된다는데 영역지정이 잘못되는지 이상한곳에서 마우스 이동이 잡혀버리더라구요
: :
: : 도와주세요 ㅠㅠ
:
:
:
: 답변:
:
:
: void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
: {
:    static bool bMouseCaptured = false;
:    
:    if ([](const auto& _) -> bool {
:       return _ ? 0 : bMouseCaptured ? (::ReleaseCapture(), bMouseCaptured = false, 1) : 1;
:    } (::GetAsyncKeyState(VK_LBUTTON) & 0x8000)) return;
: 
:    bMouseCaptured = true;
:    ::SetCapture(Handle);
: 
:    if (TPoint pt{X, Y}; ClientRect.Contains(pt)) return;
:    else {
:       pt.x = X < 0 ? 0 : X > ClientRect.right ? ClientRect.right : X;
:       pt.y = Y < 0 ? 0 : Y > ClientRect.bottom ? ClientRect.bottom : Y;
:       ::ClientToScreen(Handle, &pt);
:       ::SetCursorPos(pt.x, pt.y);
:    }
: }
: 
: 

:
:
: C++17 컴파일러 사용.
:
:

+ -

관련 글 리스트
75852 폼안에서 마우스 클릭상태면 폼밖으로 못나가게 하는 방법? 초보 1085 2020/05/13
75857     Re:폼안에서 마우스 클릭상태면 폼밖으로 못나가게 하는 방법? 980 2020/05/16
75853     Re: 이벤트 핸들러 하나로 간단하게 구현하려면 (C++17) 빌더(TWx) 1302 2020/05/13
75854         Re:Re: 배우고 싶습니다 초심 1218 2020/05/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.