안녕하세요. 초짜 델파이 유저 Yull 입니다.
곰플레이어 프로그램을 보면, 메인폼이 라운딩처리(폼 모서리를 둥글게..)가 된 상태에서
폼 리사이즈가 가능합니다.
현재 Delphi 2007 을 사용하고 있고, 지금까지 시도해 본 것은
1. 폼의 Transparent 속성을 설정하고 폼에 이미지를 입히면 라운딩 효과가 나긴 하는데 (물론 리사이즈 가능)
BorderStyle 이 bsSizeable 이다 보니 폼 테두리가 두껍게 나옵니다.
2. 폼의 BorderStyle 을 bsNone 으로 설정하고 (기본적으로 폼 리사이즈 불가상태)
CreateRoundRectRgn 과 SetWindowRgn을 사용하여 폼 모서리를 둥글게 깎은 다음
폼의 MouseMove 이벤트를 사용하여 코딩으로 폼 리사이즈를 구현한 것인데 편법으로 해서 그런지
폼의 상단을 잡고 아래로 리사이즈를 하면 화면 전체가 이동해 버리고 (빈번하게 발생 ㅠ.ㅠ)
폼의 이미지가 리프레시가 안되는 현상이 발생합니다. (MouseUp 후에는 괜찮습니다.)
곰플레이어를 보면 폼 테두리도 BorderStyle := bsNone 일때처럼 단선으로 나오면서 폼 리사이즈도
자연스럽게 되는데, 현재까지 아무리 검색해봐도 마땅한 해결책을 못찾은 상태입니다. 쩝.
구현하려고 하는 것은 폼의 테두리가 얇게 나오면서 폼 리사이즈가 가능한 것입니다.
고수님들의 조언 부탁드립니다.
즐거운 한주 되세요. ^^
윈도우처럼 폼의 리사이즈를 하실려면 폼의 OnMouseMove이벤트를 쓰시는게 아니라 WM_NCHITTEST메세지를 이용해서 처리를 하시면 됩니다.
아래 링크 참조하셔서 원하는 기능을 구현하세요...
http://www.delphi.co.kr/zboard/view.php?id=qanda&page=1&sn1=&divpage=11&sn=off&ss=on&sc=on&keyword=WM_NCHITTEST&select_arrange=headnum&desc=asc&no=104278
^^ 항상 즐코하세요.