Region을 이용한 부정형 윈도 만들기

31437 
Created at 2006-11-16 03:27:09 
429   0   0   0  


먼저 Kurapa.com 주인도 아닌데. 이렇게 올려도 될지 모르겠군요
오늘 가입한 selee 라고합니다.

Jean-Edouard Lachand-Robert 의 BitmapToRegion() 라는 코드를 
이용하여 간단히 만든 부정형(non-rectangle: 아무렇게나 모양) 윈도우 입니다.
클릭해서 드래그하면 드래그됨.

CD모양의 그림의 RGB(1,0,1) 픽셀이 날라가는 부분입니다.

VisualC++6.0 으로 만들었는데..(2004)
아마 대부분의 Compiler에서 돌아갈것 입니다.


[주요부분]

    case WM_CREATE:
          
   //////////////////////////////////////
   // MemDc & bitmap  create
   hdc     = GetDC(hWnd);
   hdcRgn  = CreateCompatibleDC(hdc);               // alloc Mem dc
   hbmRgn  = LoadBitmap((HINSTANCE)GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1));
   hRgn    = BitmapRegion(hdcRgn,hbmRgn, RGB(1,0,1));
   SetWindowRgn(hWnd,hRgn,TRUE);
 
  여기서 region 먼저 만들어 버림.

  만약 시시각각 변하는 윈도우를 만들고 싶다면
  Region set 하는 Win32 API가 상당히 느리니. 다른 Trick을 쓰시길



  // 정상적인 Paint 부분
  case  WM_PAINT:
   {
    hdc = BeginPaint(hWnd, &ps);

    RECT rt;
    GetClientRect(hWnd, &rt);
    HBITMAP hbmOld =(HBITMAP)SelectObject(hdcRgn,hbmRgn); // asign bitmap to memdc(hdcRgn)
    
    BitBlt(hdc,     
      rt.left,  
      rt.top,   
      rt.right ,
      rt.bottom,
      hdcRgn,    
      0,0,SRCCOPY);

    SelectObject(hdcRgn,hbmOld);  // release bitmap

    
    EndPaint(hWnd, &ps);
    }
    return 0;



HRGN  BitmapRegion (HDC hdc, HBITMAP hBmp,COLORREF cTransparentColor)
Jean-Edouard Lachand-Robert(http://www.geocities.com/Paris/LeftBank/1160/resume.htm), June 1998.
이사람이 만들어서 어디에 올린건데. GDI해제를 끝부분에 하지 않더군요(오래 계속 쓰면 컴퓨터 이상해짐) 
약간 고쳤음.


프로젝프파일째로 올렸읍니다(exe포함) region32.zip








Tags: 윈도우즈 Share on Facebook Share on X

◀ PREVIOUS
유동 IP로 DNS 매핑하여 서비스 하는 방법
▶ NEXT
텍스트 인쇄하기
  Comments 0
Login for comment
SIMILAR POSTS

spoolsv.exe의 문제 cpu점유률 100% (created at 2006-11-24)

프린터 인쇄 취소가 안될때 (created at 2006-11-24)

Internet Explorer의 검색창에서 한글 입력이 안될때 (created at 2006-11-24)

유동 IP로 DNS 매핑하여 서비스 하는 방법 (created at 2006-10-14)

MS IE7.0 가세「툴바 전쟁」혈투 예고 (created at 2006-10-14)

어떤 디렉토리가 가장 큰지 알아내는 방법? (created at 2006-10-13)

UTF-8로 파일 저장하기 (created at 2006-12-22)

이미지를 지정된 비율로 자르기 (crop) (created at 2006-10-10)

MFC의 GDI/GDI+ 리소스 누수 현상 (created at 2006-12-27)

GDI+를 이용한 회전 3가지.... (created at 2006-12-27)

VC++ 6.0 에서 GDI+ 사용하기.. (created at 2006-12-27)

간단히 WIN32에서 MFC의 메모리 누수 체크하는 방법 (created at 2006-12-27)

MFC의 TRACE() 출력 빼먹는 현상 (created at 2006-12-27)

모달리스 다이얼로그 와 메모리 리크(Leaks) (created at 2006-12-27)

GetDC()의 메모리 누수 막기 (created at 2006-12-27)

VC 에서 자동으로 빌드 넘버 증가하기 (created at 2006-12-28)

Internet Explorer가 자주 비정상 종료 할때 (created at 2006-12-29)

모니터 끄는 API (created at 2006-09-29)

File Search Sample Code (created at 2006-09-29)

String Find 알고리즘 (created at 2006-09-29)

HTTP Downloading Reference Source Code (created at 2006-09-29)

Application Event써서 Keyboard 받아내기 (created at 2006-09-29)

Web Browser Control에서 Enter키 먹게 하기 (created at 2006-09-29)

윈도우 찾아서 Top Most로 올려주기 (updated at 2023-12-17)

Application defined window call procedure (created at 2006-09-29)

ActiveX의 등록 - Safe Code 넣어주기 (updated at 2023-12-17)

ActiveX를 Safe한 Component로 등록하는 방법 (created at 2006-09-29)

투명 윈도우 구현 방법 (created at 2006-09-29)

웹브라우져에 붙이기 위한 ActiveX 프로그래밍 방법 (created at 2006-09-29)

how to record keyboard & mouse event (created at 2006-09-29)

OTHER POSTS IN THE SAME CATEGORY

동적 이미지(실시간 그래프) 생성하기 (created at 2006-12-22)

UTF-8로 파일 저장하기 (created at 2006-12-22)

발신전용 메일서버 만드는 방법 (created at 2006-12-21)

구글 검색시 순위 올리기 (created at 2006-12-18)

사이트 트래픽의 주범 웹봇 차단하기 - robots.txt (created at 2006-12-18)

Internet Explorer의 검색창에서 한글 입력이 안될때 (created at 2006-11-24)

프린터 인쇄 취소가 안될때 (created at 2006-11-24)

spoolsv.exe의 문제 cpu점유률 100% (created at 2006-11-24)

http-2.2.3에서 ssl 설치 (created at 2006-11-24)

초간단 php-oracle 연동 클래스 (created at 2006-11-24)

금액을 입력할때 세자리마다 컴마찍기 (created at 2006-11-24)

쿠키 세팅하기 (created at 2006-11-22)

초간단 AJAX 샘플 (created at 2006-11-22)

Hello World 뿌리기 (created at 2006-11-18)

텍스트 인쇄하기 (created at 2006-11-17)

유동 IP로 DNS 매핑하여 서비스 하는 방법 (created at 2006-10-14)

MS IE7.0 가세「툴바 전쟁」혈투 예고 (created at 2006-10-14)

어떤 프로세스가 메모리를 가장 많이 차지하는지 알아보는 방법? (created at 2006-10-13)

어떤 디렉토리가 가장 큰지 알아내는 방법? (created at 2006-10-13)

root password 까먹었을때? (created at 2006-10-13)

지정날짜에 이미지 보여주기 혹은 감추기 (created at 2006-10-10)

구글 메일(GMail)로 메일 발송하기 (created at 2006-10-10)

window 스스로 닫기 (created at 2006-10-10)

이미지를 지정된 비율로 자르기 (crop) (created at 2006-10-10)

JavaScript로 만든 달력(popup 객체사용) (created at 2006-10-10)

AJAX 컨트롤 많이 있겠지만, Form 메소드 형태로 (created at 2006-10-10)

모니터 끄는 API (created at 2006-09-29)

telnet 접속이 내부는 되는데 외부는 안되는 경우 (created at 2006-09-29)

포트 변경하는 법 (created at 2006-09-29)

가상 호스트(Virtaul Host)를 꾸미려면... (created at 2006-09-29)

UPDATES

글루코사민 vs. 콘드로이친: 무엇이 더 나은 관절 건강 보조제일까? (created at 2024-04-22)

광주 5·18 민주화운동 알린 테리 앤더슨 前 AP 기자 (created at 2024-04-22)

햄과 소세지가 우리 몸에 일으키는 부작용 (updated at 2024-04-22)

콘드로이친의 염증 감소효과 (updated at 2024-04-22)

코사민 DS - 글루코사민+콘드로이친 복합물이 함유된 퇴행성 관절 건강보조제 (updated at 2024-04-22)

삼겹살 먹을때 환상조합 (created at 2024-04-22)

일본 여중생의 특이한 취향 (created at 2024-04-22)

우리가 먹는 약물이 바꿔버린 생태계 (created at 2024-04-21)

일본에서 그린 상상속의 사무직과 현실속의 사무직 (updated at 2024-04-21)

북한 미대생들이 그린 북한 최고존엄 김정은 (created at 2024-04-21)

입사 후 1년도 되지 않은 회사에서 구조조정에 의한 퇴직 불응에 따른 해고 처리시 대응 가능한 방법 (updated at 2024-04-20)

한고은님의 옛날 사진 (updated at 2024-04-20)

소녀대 - Bye Bye Girl (updated at 2024-04-13)

대한민국 날씨 근황 (created at 2024-04-13)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-04-13)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-04-13)

Marshall Ha님의 샤오미 SU7 시승기 - 테슬라의 일론 머스크님이 긴장할만한 느낌 (updated at 2024-04-09)

윙크하는 귀염둥이 반려견들 (created at 2024-04-08)

달콤 살벌한 고백 (created at 2024-04-08)

북한 최정예 공수부대 훈련 모습 (updated at 2024-04-02)

맛있었던 친구 어머니의 주먹밥이 먹고 싶어요 (created at 2024-04-02)

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)