디시인사이드 갤러리

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

갤러리 본문 영역

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

이힝(112.163) 2013.01.31 20:42:56
조회 91 추천 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/21 - -
AD 곧 휴가!! 홈캉스, 바캉스 SALE 운영자 25/07/21 - -
345544 구인구직에서 '칼퇴근'글자 있으면 이거 레알임? [3] 리캉(175.115) 13.02.10 212 0
345543 새해 복들 많이받아...^ㅅ^ 黑猫갤로그로 이동합니다. 13.02.10 44 0
345542 싸우자ㅡㅡ [1] 할마마갤로그로 이동합니다. 13.02.10 71 0
345539 표준은 죶발랏다고 const string& 으로 받겟니? 헤헤(221.160) 13.02.10 92 0
345538 백왕 웰케 난폭해졌냐? 코불(211.172) 13.02.10 97 0
345536 벨류랑 레퍼런스 관계는 성능문제가 아니잔아 븅신들아 [2] 맙이(203.226) 13.02.10 102 1
345535 프갤 횽들 질문이있어요.초보임.진로에대해 [3] 럼블좆도안귀여움갤로그로 이동합니다. 13.02.10 176 0
345529 value reference 차이 헤헤(221.160) 13.02.10 90 0
345526 세뱃돈 안보고 찍어올린다 10만빵임??? .jpg [2] ㅇㅇ(175.112) 13.02.10 181 0
345524 새해복많이받으세여 dcin_bot(1.234) 13.02.10 30 0
345523 디씨인~ 디씨인~ [3] 땡칠도사갤로그로 이동합니다. 13.02.10 123 0
345522 언어좀 그만 빨아라 [2] de(183.103) 13.02.10 176 0
345520 자바원숭이의 생식기는 뭐다? c(175.208) 13.02.10 89 0
345519 횽들중에 해커도 많겟지? [1] ddd(180.228) 13.02.10 114 0
345518 C#이 미래다!!!!!! [4] 쥐맨(121.67) 13.02.10 439 0
345510 딴과는 몰라도 컴공은 기숙사 재밋ㄹ것다 7even갤로그로 이동합니다. 13.02.10 99 0
345509 삼촌이 자꾸 나보고 자바 하라던데 [2] 黑猫갤로그로 이동합니다. 13.02.10 232 0
345508 C언에서 입력받은 값만큼 배열을 선언하는 방법은 없나요? [5] ㅁㄴㅇㄹㄴㄹ(114.200) 13.02.10 121 0
345507 끝내주는 자바스크립트 개발자 vs 흔한 C+개발자 [1] ㄴㅇㄴㅇ(1.231) 13.02.10 185 0
345506 자기가 하고 싶은 일을 해야 인생이 행복한거지.. ㄴㅇㄴㅇ(1.231) 13.02.10 54 0
345505 Call by reference VS call by value 종결해준다 [7] sleep(175.223) 13.02.10 259 0
345504 음력 새해 첫 글!!!!!! 에어로홍갤로그로 이동합니다. 13.02.10 38 0
345503 컴퓨터공학은 전망이 어떤가요.. [10] ㅇㅋㅇㅋ(211.246) 13.02.09 396 0
345502 새해 코웅갤로그로 이동합니다. 13.02.09 42 0
345501 북극성 노래 두 편 [1] 에어로홍갤로그로 이동합니다. 13.02.09 37 0
345499 메써드랑 클래스가 머에여 ? [2] 리낭갤로그로 이동합니다. 13.02.09 97 0
345496 어휴 명절날에 프갤도 싸움질이라니 [3] 개떙보갤로그로 이동합니다. 13.02.09 84 0
345495 프갤러들 싸우니깐 죶내여 [2] 헤헤(221.160) 13.02.09 75 0
345493 횽들 이제 이학년되는데 어셈블리어 [1] ㅁㄴㅇㄹ(211.210) 13.02.09 123 0
345490 리눅스 공부 들어가기 전에 윈도우 서버 공부할려고 하는데 [2] 리플레이갤로그로 이동합니다. 13.02.09 74 0
345487 함수 포인터 질문좀.. [8] ㅇㅇ(121.163) 13.02.09 129 0
345486 형들 제발 하나만 갈켜주십쇼 [3] ㅁㄴㅇㄹ(119.56) 13.02.09 56 0
345485 자바원숭이의 유래 [1] c(175.208) 13.02.09 133 0
345484 아무래도 기분이 좋아진 것 같아요 [3] 때릴꺼야?(116.40) 13.02.09 122 0
345483 고수님들 상담부탁이요 ㅠ 항공대 컴퓨터 정보공학 [1] ㅇㅋㅇㅋ(39.7) 13.02.09 168 0
345481 10년후엔 서버페이지 언어를 사용안하게 될지도 모르겠네 [8] 흠흠(1.231) 13.02.09 218 0
345480 php 페이징 왤캐어려움 ㅅㅂ [4] rthfg(175.215) 13.02.09 139 0
345479 2~4살짜리 애들 뭐 좋아하냐 [4] 루비•‿•갤로그로 이동합니다. 13.02.09 135 1
345478 나한테 죽이는 아이디어가 있어 [2] ㅎㅎㅎ(1.231) 13.02.09 119 0
345476 왜 구글은 안드로이드 어플을 달빅머신과 자바로 개발하게 만들었을까? [7] (1.246) 13.02.09 212 0
345475 윈API를 왜 공부해야되냐? [4] korsup갤로그로 이동합니다. 13.02.09 173 0
345474 프갤이 실시간 북적갤이 된 이유는 에어로홍갤로그로 이동합니다. 13.02.09 88 0
345473 C C++ 재귀호출 속도 비교 ㅇㅇ(121.163) 13.02.09 103 0
345472 헠프갤이 실북갤이라니 93년생미필(203.226) 13.02.09 55 0
345471 %uBCD1%uC2E0%uC0C8%uB07C%uB4E4+%u3149%u3 [1] Light_Year갤로그로 이동합니다. 13.02.09 139 0
345469 GUI 프로그래밍 공부 해보려는데 [2] 12(59.12) 13.02.09 175 0
345467 백왕 개부럽다.. [1] 코불(211.172) 13.02.09 179 0
345466 일단한번읽어봐 할마마갤로그로 이동합니다. 13.02.09 85 0
345464 node.js 완전 재밌네 zizi(1.231) 13.02.09 110 0
345462 visual studio도 프로젝트이름바꾸기좀 지원해줬으면 좋겟다 부스타(221.160) 13.02.09 139 0
뉴스 [티처스2] 정승제&조정식, 2026 수능 일급 비밀 대방출! “처음 보는 유형 등장? 모두가 당황스러울 것” 평정심 강조! 디시트렌드 07.21
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2