디시인사이드 갤러리

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

갤러리 본문 영역

WIN32API 자식 윈도우 메시지 처리하기 도아주세여(2)

이힝(112.163) 2013.01.31 20:42:56
조회 86 추천 0 댓글 1


#include <windows.h>
#include "..resource.h"
LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT iMsg,
         WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK ChildWndProc(HWND hDlg, UINT iMsg,
         WPARAM wParam, LPARAM lParam);
HINSTANCE hInst;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpszCmdLine, int nCmdShow)
{
 HWND   hwnd;
 MSG   msg;
 WNDCLASS WndClass;  
 hInst = hInstance;
 WndClass.style = CS_HREDRAW | CS_VREDRAW;
 WndClass.lpfnWndProc = FrameWndProc;  
 WndClass.cbClsExtra = 0;  
 WndClass.cbWndExtra = 0;  
 WndClass.hInstance = hInstance;  
 WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); 
 WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
 WndClass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU7_6);  
 WndClass.lpszClassName = "Window Class Name"; 
 RegisterClass(&WndClass); 
 WndClass.lpfnWndProc = ChildWndProc;
 WndClass.lpszMenuName = NULL;
 WndClass.lpszClassName = "Child Window Class Name";
 RegisterClass(&WndClass) ;
 hwnd = CreateWindow("Window Class Name",
  "Main Window Title",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  NULL, 
  NULL, 
  hInstance, 
  NULL 
 );
 ShowWindow(hwnd, nCmdShow);
 UpdateWindow(hwnd);
 while(GetMessage(&msg, NULL, 0, 0))
 {
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 }  
 return (int)msg.wParam;
}

HWND ChildHwnd[2];
LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT iMsg,
         WPARAM wParam, LPARAM lParam)    
{
  static BOOL split; 
  static HCURSOR hCursor;
  static int boundary = -1;
  RECT rectView;

  switch (iMsg)
  {
 case WM_CREATE:
  split = FALSE;
  return 0;
 case WM_COMMAND:
  switch(LOWORD(wParam))
  {
  case ID_SPLIT_2_1:
   if (split == TRUE) break;
   split = TRUE;   
   GetClientRect(hwnd, &rectView);
   ChildHwnd[0] = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    "Child Window Class Name",
    NULL, 
    WS_CHILD | WS_VISIBLE,
    0, 
    0, 
    rectView.right,
    rectView.bottom/2-1,
    hwnd,
    NULL,
    hInst,
    NULL
   );
   ChildHwnd[1] = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    "Child Window Class Name",
    NULL, 
    WS_CHILD | WS_VISIBLE,
    0,
    rectView.bottom/2+1,
    rectView.right,
    rectView.bottom/2-1,
    hwnd,
    NULL,
    hInst,
    NULL
   );
   boundary = rectView.bottom/2;
   hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_SIZENS));
   return 0;
  case ID_EXIT :
   PostQuitMessage(0);
   return 0 ;
  }
  return 0;
 case WM_MOUSEMOVE:
  if (HIWORD(lParam)>=boundary-2 && HIWORD(lParam)<=boundary+2) SetCursor(hCursor);
  if (wParam == MK_LBUTTON && split == TRUE)
  {
   GetClientRect(hwnd, &rectView);
   if (rectView.top+5 < HIWORD(lParam) && HIWORD(lParam) < rectView.bottom-5)
    boundary = HIWORD(lParam);
   MoveWindow(ChildHwnd[0], 0, 0, rectView.right, boundary - 1, TRUE);
   MoveWindow(ChildHwnd[1], 0, boundary+1, rectView.right, rectView.bottom - boundary + 1, TRUE);
  }
  return 0;
 case WM_LBUTTONDOWN:
  if (split == TRUE)
  {
   SetCursor(hCursor);
   SetCapture(hwnd);
  }
  return 0;
 case WM_LBUTTONUP:
  if (split == TRUE) ReleaseCapture();
  return 0;
 case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
 }
 return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT iMsg,
         WPARAM wParam, LPARAM lParam)
{
 HDC hdc;
 static int x[2] = {20, 20}, y[2]={20, 20}, flag[2];
 int select;

 switch (iMsg)
 {
 case WM_CREATE: 
  break;
 case WM_TIMER:
  x[wParam] = x[wParam] + 20;
  hdc = GetDC(hwnd);
  Ellipse(hdc, x[wParam] - 20, y[wParam] - 20,
    x[wParam] + 20, y[wParam] + 20);
  ReleaseDC(hwnd, hdc);
  break;
 case WM_LBUTTONDOWN:
  if (hwnd == ChildHwnd[0])
   select = 0;
  else
   select = 1;
  flag[select] = 1 - flag[select];
  if (flag[select])
   SetTimer(hwnd, select, 100, NULL);
  else
   KillTimer(hwnd, select);
  break;
 case WM_DESTROY:
  return 0;
 }
 return DefMDIChildProc(hwnd, iMsg, wParam, lParam);
}

예제 그대로 긁어옵니다
어떻게 위에 자식윈도우를 누르면 위에건줄알고 동그라미가 쭉생기나여?
스샷은 위에자식윈도우에 클릭하고 그담에 아래자식윈도우 클릭한거임

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
345138 백왕 연봉 세전 4천이 사실이냐? 얼룩돼지갤로그로 이동합니다. 13.02.06 135 0
345137 안랩 연수생 해본형 있어? [5] 폰노만(118.217) 13.02.06 5141 0
345136 아이디어 제공자 + 기획자 +ceo + 영업능력을 갖추었다면 개발자를 [1] ㅎㅎㅎ(203.226) 13.02.06 117 0
345135 여기 가산에 직장다니는 사람 얼마나 있나보자 [5] S-GUN갤로그로 이동합니다. 13.02.06 130 0
345134 창업에 있어서 아이디어 비중은 10%정도 ㅇㅇ(112.152) 13.02.06 131 0
345133 웹 퍼블리셔는 모야? [8] ㅁㄴㅇㄹ(124.146) 13.02.06 221 0
345131 컴공 편입 했다 [6] ㄱㄴㄷㅂ(210.217) 13.02.06 279 0
345129 존나 쩌는 사업 아이템 아이디어 알려준다. [9] (168.126) 13.02.06 227 0
345127 횽들 대체 머가잘못된거야 [4] 대한민국갤로그로 이동합니다. 13.02.06 115 0
345126 프로그래머 순화어는 풀그림사 [11] 에어로홍갤로그로 이동합니다. 13.02.06 220 0
345125 오유 사용자 "국정원 직원, 1분간 친여 글 14개 올려 [10] 에어로홍갤로그로 이동합니다. 13.02.06 204 0
345124 "40만 원 내라" 인터넷에 사진 1장 올렸다 곤욕 에어로홍갤로그로 이동합니다. 13.02.06 133 0
345122 남자들의 묘한 경쟁 심리, 선택 못 받은 자의 '분노' [2] 에어로홍갤로그로 이동합니다. 13.02.06 239 0
345120 ★★★이효리와 캬리이파뮤파뮤 뮤비를 보다보면★★★ 에어로홍갤로그로 이동합니다. 13.02.06 63 0
345119 노트북 뭐쓰냐?? [3] ㅁㄴㅇㄹ(121.134) 13.02.06 168 0
345118 다자네 [2] 루비•‿•갤로그로 이동합니다. 13.02.06 77 0
345117 형들.... [6] 질문할놈(223.62) 13.02.06 79 0
345116 영어는 필수죠 sexer1갤로그로 이동합니다. 13.02.06 71 0
345113 안 쓰면 까먹는다. [4] 자살춫(125.180) 13.02.06 162 0
345111 c관련 문제에서 궁금한게 있습니다. [3] 궁금한거(116.36) 13.02.06 103 0
345109 php질문점 앞에.잇는데 이거머임? [7] aweyy(175.215) 13.02.06 122 0
345107 와이파이 징검다리 네트워크 가능할까요? [2] ㅇㅇㅇ(121.144) 13.02.05 103 0
345106 Adobe Edge Animate가 플래쉬를 대체할듯 싶습니다. ㅎㅎㅎ(222.237) 13.02.05 58 0
345105 jQuery 잘쓰는 방법 1탄.txt [3] Kyle(220.244) 13.02.05 219 0
345103 백왕님 함께 힘을 합쳐보실까요? [2] ㅎㅎㅎ(222.237) 13.02.05 79 0
345102 안드로이드 디바이스쪽 경력 있는데 무슨 일을 해야할까? [1] ㅂㅂ(118.176) 13.02.05 67 0
345100 이제곧 중3되는데 뭐배워야될까요형들... [14] qqqqqhk갤로그로 이동합니다. 13.02.05 157 0
345098 백왕형 영어 솔루션 + 프갤러의 특징 + 조언 [2] Kyle(220.244) 13.02.05 125 0
345097 한국산업인력공단 회원가입하는데 이게 뭔 소리냐. [9] classical(175.200) 13.02.05 154 0
345096 백괴사전 자바 치니깐 이거 뭐야 ㅋㅋㅋㅋㅋㅋ [6] 소통령갤로그로 이동합니다. 13.02.05 189 0
345092 형들 근데 OCJP랑 오라클 자격증 준비 학원 어디가 좋음? [1] 착프(218.155) 13.02.05 99 0
345091 유니티3d 만지는사람 있음니까? [1] appllee갤로그로 이동합니다. 13.02.05 95 0
345089 How a garbage collector works.gif [7] 리프트마시쪙(58.237) 13.02.05 133 0
345088 형들 초짜인데 홈피 타이틀이 깨지는데 질문점여 ㅠㅠ [4] ㅇㅇ(27.119) 13.02.05 68 0
345087 안드로이드 프레임워크 개발이 머냐. [4] ㅋㄱ(183.96) 13.02.05 144 0
345085 이번에도 명절 예언한다. dot(118.219) 13.02.05 63 0
345083 소프트웨어 중견기업은 많이 없나요? 와우컹컹갤로그로 이동합니다. 13.02.05 48 0
345082 win32api 자식윈도 정보 어케 추출하나요? [1] 이힝(175.215) 13.02.05 47 0
345081 [HTML5] 꼬꼬마입니다 Server Send Event 질문해도 될까 [5] Aris52(59.17) 13.02.05 94 0
345080 php에 주소에 ?이거뭐임?? [7] aweyy(175.215) 13.02.05 118 0
345079 순간 sqlite로 읽어버렸다 [3] ㄹㅇㄴㅁ(175.205) 13.02.05 111 0
345078 형들 php에서 등호앞에 .이거 붙는데 왜붙음?? [8] aweyy(175.215) 13.02.05 105 0
345076 부스트 책 정녕 이거밖에 없음? [3] 부스타(14.36) 13.02.05 70 0
345075 형들 MySQuirreL 을 뭐라고 읽어요 ? [2] MS♡(183.102) 13.02.05 61 0
345074 윈도우 젤 쓸데없는 기능 [9] 부스타(14.36) 13.02.05 198 0
345073 c#배울려면 꼭 c++배워야함? [10] aweyy(175.215) 13.02.05 243 0
345072 플래시는 근데 안망하지 않음? [2] 부스타(14.36) 13.02.05 85 0
345070 한국소프트웨어인재개발원 이런데 어떤곳임? [4] dsfsd(1.251) 13.02.05 857 0
345069 님드라 함수와 객체의 차이가뭐임? [10] aweyy(175.215) 13.02.05 141 0
345068 형들 안드로이드에서 pc로 영상전송 어떤 방법이 있을까?? [11] 코볼(211.172) 13.02.05 151 0
뉴스 이시영 "전 남편 동의없이 시험관"…둘째 임신 발표에 '갑론을박' 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2