화면 DC에 있는 색상들을 메모리 DC로 옮길 수 있나요?

mydream의 이미지

화면 DC에 있는 색상들의 일부를 메모리 DC로 옮기려고 시도해봤는데, 잘 안되네요. 어떻게 해야 화면 DC 일부를 메모리 DC로 가져올 수 있을까요? 그리고 그 메모리 DC를 다시 화면 DC로 옮기려고 하는데요. 그것 역시 잘 안됩니다.

#include <windows.h>
 
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
	WNDCLASS WndCls;
	WndCls.cbClsExtra=0;
	WndCls.cbWndExtra=0;
	WndCls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	WndCls.hCursor=LoadCursor(NULL, IDC_ARROW);
	WndCls.hIcon=NULL;
	WndCls.hInstance=hInstance;
	WndCls.lpfnWndProc=WinProc;
	WndCls.lpszClassName=TEXT("copy");
	WndCls.lpszMenuName=NULL;
	WndCls.style=CS_HREDRAW | CS_VREDRAW;
	RegisterClass(&WndCls);
	HWND hwnd=CreateWindow(TEXT("copy"), TEXT("win"), WS_OVERLAPPEDWINDOW, 300, 300, 500, 500, NULL, NULL, hInstance, NULL);
	ShowWindow(hwnd, nShowCmd);
	MSG message;
	while(  GetMessage(&message, NULL, 0, 0)  ) {
		TranslateMessage(&message);
		DispatchMessage(&message);
	}
	return message.wParam;
}
 
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) {
	switch(message) {
		case WM_DESTROY:
			PostQuitMessage(0);
			return 0;
		case WM_KEYDOWN:
			switch(wparam) {
				case VK_LEFT:
					HDC hdc=GetDC(hwnd);
					HDC memDC=CreateCompatibleDC(hdc);
 
 
					StretchBlt(memDC, 0, 0, 200, 200, hdc, 0, 0, 200, 200, SRCCOPY);
					StretchBlt(hdc, 200, 200, 200, 200, memDC, 0, 0, 200, 200, SRCCOPY);					
//위 두 줄의 코드에서 복사가 제대로 안됩니다.
 
					DeleteDC(memDC);
					ReleaseDC(hwnd, hdc);
					break;
			}
			return 0;
		case WM_PAINT:
			PAINTSTRUCT pst;
			HDC hdc=BeginPaint(hwnd, &pst);
			HBRUSH new_brush=CreateSolidBrush(0x000000);
			HBRUSH backup_brush=(HBRUSH)SelectObject(hdc, new_brush);
 
			Rectangle(hdc, 0, 0, 200, 200);
			SelectObject(hdc, backup_brush);
			DeleteObject(new_brush);
			EndPaint(hwnd, &pst);
 
			return 0;
	}
	return DefWindowProc(hwnd, message, wparam, lparam);
}
Necromancer의 이미지

여기서 검색하시면 됩니다.

http://www.devpia.com/

http://soen.kr/

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.