디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

api고수님들의 도움을 요청합니다 !!!

컴돌이(58.77) 2010.12.13 18:49:46
조회 54 추천 0 댓글 1

 

궁금한 점이 너무 많아서요... 답변 해 주시면 감사하겠습니다.
  

1.대화상자 컨트롤들은 스스로를 그릴 수 있기 때문에 대화상자 프로시져에서 WM_PAINT 메시지를 처리해 줄 필요가 없다고 하는데, 그럼 만약에 대화상자가 다른 윈도우에 의해 덮혔다가 언커버 되면, 다시 그려줘야 하지 않나요???

 

->차일드는 자신을 그릴 수 있어서 WM_PAINT 메시지를 처리해 줄 필요가 없다는 말은 이해가 가는데요... 하지만 WM_ERASEBKGND 메세지는 처리를 해줘야 배경을 배경브러시로 칠해줄 수 있지 않나요???

 

2.MDI 클라이언트를 서브클래싱하는 이유는 쉽게 말해, 메인 윈도우에서 MDI 클라이언트를 생성하는데 MDI 클라이언트 프로시저가 따로 없기 때문에(혹은 감추어져 있거나) 서브클래싱 해주는 것이다..가 맞나요???

 

LRESULT CALLBACK MDIWndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)//함수 이름이 MDI어쩌고 인데 이게 MDI 프로시저가 아니라 메인 윈도우 프로시저 맞나요???
{
 CLIENTCREATESTRUCT ccs;
 MDICREATESTRUCT mcs;
 switch (iMessage) {
 case WM_CREATE:
  // MDI Client 윈도우 만듬
  ccs.hWindowMenu=GetSubMenu(GetMenu(hWnd), 1);
  ccs.idFirstChild=IDM_WINDOWCHILD;
  g_hMDIClient=CreateWindow(TEXT("MDICLIENT"), NULL, WS_CHILD | WS_VSCROLL |
   WS_HSCROLL | WS_CLIPCHILDREN,
   0,0,0,0,hWnd,(HMENU)NULL, g_hInst, (LPSTR)&ccs);
  ShowWindow(g_hMDIClient, SW_SHOW);
  OldClientProc=(WNDPROC)SetWindowLongPtr(g_hMDIClient,
   GWLP_WNDPROC,(LONG_PTR)ClientSubProc);
  hClientBack=LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1));
  return 0;

 

3. BeginPaint로부터 받은 dc로 그리기를 하면 원이 지워지지 않는다고 되어있는데, 근데 BeginPaint가 원이 클리핑영역이 아니라는 걸 어떻게 알죠?? BeginPaint다음에서야 원이 그려지는데요???

 

case WM_PAINT:
  hdc=BeginPaint(hWnd, &ps);//순서가 이 BeginPaint 함수 단계에서 WM_ERASEBKGND 메시지가 호출되잖습니까??? 그럼 타원을 그리기 전인데 어떻게 클리핑 영역 계산할 때, 타원 영역은 제외시켜야 하는 걸 알죠???
  Ellipse(hdc,ex-30,ey-30,ex+30,ey+30);
  EndPaint(hWnd, &ps);
  return 0;
 case WM_ERASEBKGND:
  hdc=(HDC)wParam;
  MemDC=CreateCompatibleDC(hdc);
  OldBitmap=(HBITMAP)SelectObject(MemDC, MyBitmap);
  GetObject(MyBitmap,sizeof(BITMAP), &bit);
  GetClientRect(hWnd,&rt);
  for (x=0;x<rt.right;x+=bit.bmWidth)
   for (y=0;y<rt.bottom;y+=bit.bmHeight)
    BitBlt(hdc,x,y,x+bit.bmWidth,y+bit.bmHeight,MemDC,0,0,SRCCOPY);
  SelectObject(MemDC,OldBitmap);
  DeleteDC(MemDC);
  return TRUE;

 

4.winapi정복 532페이지에 왼쪽마우스버튼을 누르면 그림이 그려지는 코드가 있는데, 그림을 그리고 InvalidateRect 함수를 호출해야 그려지는 게 아닌가요??? 호출안했는데도 그려지는 건 어떻게 그렇죠???

 

case WM_LBUTTONDOWN:
  hdc=GetDC(hWnd);
  OldBrush=(HBRUSH)SelectObject(hdc,GetStockObject(NULL_BRUSH));
  hPen=CreatePen(PS_SOLID,4,RGB(255,0,0));
  OldPen=(HPEN)SelectObject(hdc,hPen);

  Ellipse(hdc,LOWORD(lParam)-50,HIWORD(lParam)-40,LOWORD(lParam)+50,
   HIWORD(lParam)+40);

  DeleteObject(SelectObject(hdc,OldPen));
  SelectObject(hdc,OldBrush);
  ReleaseDC(hWnd,hdc);
  return 0;//아무리봐도 이 메시지 처리 코드에 InvalidateRect 등 무효영역을 발생시키는 코드가 없는데, 어떻게 마우스 왼쪽 버튼을 눌렀다고 바로 그려지게되나요???

 

5.InvalidateRect를 호출하면 무효영역이 다시 그려지는 건가요??? 아니면 클리핑영역이 다시 그려지는 건가요??? WM_PAINT함수가 호출되고, 거기에 BeginPaint 함수가 있을테니 클리핑영역이 그려지게 되는 건가요???

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
227434 전자vs후자 [6] 갤러리갤로그로 이동합니다. 10.12.28 139 0
227433 형들헬프!! [2] ㅁㄴㅇㄹ(119.195) 10.12.28 61 0
227432 인천 현재 상황 브리핑 게임핵(221.162) 10.12.28 58 0
227431 덕짤을 싸자 덕짤을 싸자 [4] 땡칠도사갤로그로 이동합니다. 10.12.28 73 0
227430 프갤러님들 저 입갤 ^----^*** [1] 게임핵(221.162) 10.12.28 55 0
227428 아 ㅆㅂ 프갤 글리젠 여전히 빠르네... [4] 삼퀄(125.141) 10.12.28 77 0
227427 아 고3이라 공부해야되는데 [2] 퓨틱갤로그로 이동합니다. 10.12.28 55 0
227426 하지만..답변을안해줘도 프갤러 너흴 이제 미워하지않을게 [2] 게임핵(221.162) 10.12.28 63 0
227425 아 씨발 서울우유치즈 존나 맛없네 ㅠㅠ [2] 게임핵(221.162) 10.12.28 137 0
227424 프겔이 덕갤이 된건 니들이 만들어놓은 허상일뿐 [6] 게임핵(221.162) 10.12.28 92 0
227421 힘든 하루였다 [1] DMW(125.138) 10.12.28 54 0
227420 더블리하면서 생긴 나쁜습관 꿀레갤로그로 이동합니다. 10.12.28 72 0
227419 이거 짜는데 얼마나 걸렷을가여? [3] 갤러리갤로그로 이동합니다. 10.12.28 70 0
227418 VMware 써본 사람들 질문 하나만 합시다 [8] 개르르(164.125) 10.12.27 108 0
227417 솔직히 나도 자바 존나 싫어하지만 [5] 로션맛안심(110.15) 10.12.27 132 0
227416 저새끼자바 게임핵(221.162) 10.12.27 55 0
227415 자바 갤러리 만들어주새여 [10] 갤러리갤로그로 이동합니다. 10.12.27 130 0
227414 핵쓸려는데 [6] 게임핵(221.162) 10.12.27 134 0
227413 형들 제소원 [4] ㅁㄴㅇㄹ(119.195) 10.12.27 90 0
227412 아이유볼때마다 이토준지 만화의 토미에가 생각난다. [2] Finalizer갤로그로 이동합니다. 10.12.27 483 0
227411 답이없군... [2] 꿀레갤로그로 이동합니다. 10.12.27 50 0
227410 나도 빨리나이를먹고싶다. [5] ㅁㄴㅇㄹ(119.195) 10.12.27 104 0
227408 그리고 창업과 사업에 성공할려면 [4] Finalizer갤로그로 이동합니다. 10.12.27 119 0
227406 프갤이 덕화되고있군...이거면 어떠냐!! [3] 꿀레갤로그로 이동합니다. 10.12.27 76 0
227405 char 형 배열마다 루프돌면서 검색하고있는데 검색이안되네영 [17] 준치◕‿◕갤로그로 이동합니다. 10.12.27 111 0
227404 애니갤이라니 [2] 땡칠도사갤로그로 이동합니다. 10.12.27 58 0
227403 솔직히 프겔까지와서 같이 창업할 개발자 모집하려면 [3] Rei@디씨갤로그로 이동합니다. 10.12.27 130 0
227401 완전애니갤만들죠. [1] ㅁㄴㅇㄹ(119.195) 10.12.27 61 0
227400 프갤은 글리젠을 탓하면안된다 ㅇㅇ [3] Grand[차단](221.162) 10.12.27 64 0
227399 나도 한때 소셜거려봤는데 [1] Finalizer갤로그로 이동합니다. 10.12.27 90 0
227397 ㄷㄷ 잘생각해보니 이짤무섭다. [5] ㅁㄴㅇㄹ(119.195) 10.12.27 103 0
227396 질문있어요 횽들~~~~~답변해주면 한국은꼬르가 쏟아짐 [6] Grand[차단](221.162) 10.12.27 76 0
227395 오늘도 잉여의 하루를 보냈네... [7] Rei@디씨갤로그로 이동합니다. 10.12.27 93 0
227394 니들은 현실의 여자도 좋은데 왜 2D로 가려는거냐!! [1] 꿀레갤로그로 이동합니다. 10.12.27 66 0
227393 같이 할 프로그래머 모집! [8] thegle(58.141) 10.12.27 179 0
227392 근디 보통 이짝 일하는 사람들은 메카덕후 아닙미까??? [9] 시불라미갤로그로 이동합니다. 10.12.27 114 0
227391 나 별명이 은꼬르인데 조공주면 포인터 답해주나여??? [2] Grand[차단](221.162) 10.12.27 127 0
227390 아 덕후냄새 페인트향기름(110.15) 10.12.27 42 0
227388 프갤에서 내가 왜 먹튀지 ;;;; [2] Grand[차단](221.162) 10.12.27 76 0
227387 님들 요즘 회사가면 플그램 멀루만드나여? [3] 금고래갤로그로 이동합니다. 10.12.27 79 0
227385 God knows [2] 어떡해갤로그로 이동합니다. 10.12.27 63 0
227384 잘난척. 아는척. MnBv(123.213) 10.12.27 60 0
227383 프겔 왜이래 [4] Rei@디씨갤로그로 이동합니다. 10.12.27 59 0
227382 포인터 질문이에요 횽들 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ [2] 더글라스(221.162) 10.12.27 53 0
227381 유동닉차단먹으면 파로스가지고 뚫으면않됨? [1] ㅁㄴㅇㄹ(119.195) 10.12.27 93 0
227379 전교 50등으로 안전빵삼아두고 [2] ㅁㄴㅇㄹ(119.195) 10.12.27 84 0
227377 누구 말마따나 aszx(211.206) 10.12.27 38 0
227376 덕짤 됨 ㅇㅇ [3] 땡칠도사갤로그로 이동합니다. 10.12.27 70 0
227374 덕짤은 안됩니다! [3] 꿀레갤로그로 이동합니다. 10.12.27 53 0
227373 형들 해커하고 프로그래머하고 뭐가달라요? [2] ㅁㄴㅇㄹ(119.195) 10.12.27 92 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2