바탕 화면에 그림 그리기 > MFC Tip

본문 바로가기
사이트 내 전체검색

MFC Tip

바탕 화면에 그림 그리기

페이지 정보

profile_image
작성자 이즈
댓글 0건 조회 1,923회 작성일 06-12-27 00:08

본문

바탕화면에 그림을 그리려 합니다. 그리고 일반 윈도우에 그리는 것과의 차이점도 알고 싶습니다.

우선 바탕화면도 하나의 윈도우이므로 바탕화면의 윈도우 핸들을 알아야 합니다. 즉 일반윈도우에 그리는 것과 전혀 다를게 없습니다 .바탕 호면에 직접 그림을 그리게 되면 화면에 떠 있는 모든 윈도우에 겹쳐져서 그려지므로 바탕 화면또는 일반 윈도우에만 그리고 싶다면 별도의 작업이 필요합니다.

 여기에서는 화면 왼쪽 위부터 빗금이 그어지는 예로 필요한 부분만 보이기 위해 윈도우를 만들지 않았습니다.

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpszArgs, int nWinMode)
{
        HWND hwnd = GetDesktopWindow();
        // 바탕화면의 윈도우 핸들 얻기
        HDC hdc = GetWindowDC(hwnd);
        // 바탕화면의 DC 핸들 얻기
        // GetWindowDC를 쓴다.
       
        HPEN hPen;
        register int i;
        for(i=0; i<=255; i++) {
                hPen = CreatePen(PS_SOLID, 0, RGB(i, i, i));
                // 원하는 색으로 펜 만들기
                HGDIOBJ hOldPen = SelectObject(hdc, hPen);
                // 펜을 현재 DC에서 선택
                // 펜 핸들 보관
                MoveToEx(hdc, i*3, 0, NULL);
                LineTo(hdc, 0, i*3);
                // 선택된 펜으로 선을 긋는다.
                SelectObject(hdc, hOldPen);
                // 원래대로 펜 돌려놓기
                DeleteObject(hPen);
                // 필요없는 펜 제거
        }
        ReleaseDC(hwnd, hdc);
        // DC를 반납하고 그리기 작업을 마친다.
}

댓글목록

등록된 댓글이 없습니다.

Total 172건 8 페이지

검색

회원로그인

회원가입

사이트 정보

컴퓨터 정보,윈도우즈,리눅스,포토샵,3ds
맥스,프로그래밍 강좌팁

접속자집계

오늘
219
어제
724
최대
5,287
전체
637,218
Copyright © www.qdata.co.kr All rights reserved.