디시인사이드 갤러리

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

갤러리 본문 영역

Win32api 자식윈도우 메시지 처리하기 설명좀 부탁드려요

이힝(175.215) 2013.02.01 14:42:53
조회 121 추천 0 댓글 7


#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.hbr = (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);
}
자식윈도우 2개 중하나를 클릭하면 그 윈도내에서 원이 오른쪽으로 이동하는 예제인데요
WM_LBUTTONDOWN 되면 윈도가 위에것인지 아랫것인지 어케아나요? 이해가 안되네요..

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
344697 네이버까는 좆좌좀새끼들은 왜 구글은 안까냐 [76] sss(120.136) 13.02.03 455 0
344696 한국 it대학이 지잡대 컴공 수준인가요? [5] Memi갤로그로 이동합니다. 13.02.03 220 0
344693 아이폰에서 안드로이드 어플을 안드로이드에서 아이폰어플 가능하게 할수없나? [6] 이응(1.246) 13.02.03 210 0
344692 strtok 함수 구현해보다가 GG쳤슴 아아........... [4] asdf(183.106) 13.02.03 121 0
344691 형들. 윤성우씨 책 보면서 공부중인데 내가 틀린거야;;;?? [8] asdf(183.106) 13.02.03 228 0
344690 ContactMultiSelectionActivity를 쓰고 싶어 ㄹㅇㄴㅁ(175.205) 13.02.03 36 0
344689 핀터레스트 아는사람 있냐? [4] sdf(125.131) 13.02.03 80 0
344688 여긴 뭐하는덴데 2위갤임? [1] (119.194) 13.02.03 101 0
344687 야 속옷 파는 사이트중에서.... [1] ㅇ3ㅇ(110.14) 13.02.03 122 0
344686 이제막 대학 들어가는 좇고딩의 질문 받아줄 현직 프로그래머형있어? [6] oasisc.갤로그로 이동합니다. 13.02.03 215 0
344683 다자네 [1] 루비•‿•갤로그로 이동합니다. 13.02.03 62 0
344682 프갤새끼들은 국어도 못 읽는듯? [6] ㅇㅇㄴㅁ(114.160) 13.02.03 162 0
344681 형들 프로그래밍 업종 전직 테크트리 탈려고하는데.. 29세 인데 어떰 [2] 좃망(218.237) 13.02.03 208 0
344680 크로스헤어 얘기가 나와서 예전부터 들던 호기심 [6] 에어로홍갤로그로 이동합니다. 13.02.03 128 0
344679 아 왜 안알려주냐 치사하다 이것도 인연인데 알려줘 [3] 웹궁금(110.12) 13.02.03 79 0
344677 크로스헤어 뚫어주실분없나요ㅠㅠ [7] ㅁㄴㅇㄹ(61.75) 13.02.03 132 0
344676 제생각엔 뇌이버같은 포털이 망하는게 중요합니다. [3] ㅋㅋㅋ(1.231) 13.02.02 119 0
344675 궁금한게 있는데 html이 구조 css가 프레젠테이션 이자나여 [4] 웹궁금(110.12) 13.02.02 79 0
344674 백왕님 호기심이 생깁니다 에어로홍갤로그로 이동합니다. 13.02.02 58 0
344672 횽들 나 프로그래밍 입문하는데 데탑하나 맞출라하는데 도움 좀 [9] ㅇㅇ(125.176) 13.02.02 154 0
344670 한국인의 특징, 창의적이지 못하다. [4] ㅋㅋㅋ(1.231) 13.02.02 212 1
344669 자바스크립트 질문받아라 [2] 루비•‿•갤로그로 이동합니다. 13.02.02 120 0
344668 애들아 맥에어 중고 사려고 하는데 ㅇㅇ(61.98) 13.02.02 256 0
344667 예전에 누구더라 ?? [1] ㅠㅠ개초보(183.102) 13.02.02 45 0
344666 외국은 노동을 신성시 합니다. [9] ㅋㅋㅋ(1.231) 13.02.02 128 0
344663 외국에선 왜 프로그래머가 대접받죠? [6] 와우컹컹갤로그로 이동합니다. 13.02.02 207 0
344662 슬롯머신 [5] 이모군(58.228) 13.02.02 80 0
344661 야 자바는 어따 써먹는거냐? [1] ㅣㅏㅇㄴㄹ(183.101) 13.02.02 121 0
344659 임베디드 공부 할려면 뭐부터해야대? [2] 하ㅣㅂㅈ(14.47) 13.02.02 143 0
344658 유능한 프로그래머의 정의가 대체 뭐죠? [4] 와우컹컹갤로그로 이동합니다. 13.02.02 176 0
344657 백왕이 감성 충전이라고 해서 생각나는게 [4] 에어로홍갤로그로 이동합니다. 13.02.02 90 0
344655 프로그래머 범위 질문 [9] 와우컹컹갤로그로 이동합니다. 13.02.02 154 0
344654 동적로딩같은걸 써야하나; [1] sdf(125.131) 13.02.02 71 0
344651 콩고 비밀 정보 요원, 한국의 난민이 되다 [2] 에어로홍갤로그로 이동합니다. 13.02.02 167 1
344649 디씨인을 숙연하게 만드는 명문 에어로홍갤로그로 이동합니다. 13.02.02 72 0
344646 간만에 예전 프갤다운 떡밥이 돌았네 왠일이냐 [1] 돌대갈(116.33) 13.02.02 115 0
344645 코드 줄일 수 있게 도와주세요 [3] ㅋㅋㅋㅋ(114.199) 13.02.02 107 0
344644 형들 난 프로그래밍 할 머리가 아닌걸까... [7] d(1.214) 13.02.02 210 0
344643 Kyary Pamyu Pamyu ☆ Cherry Bon Bon 에어로홍갤로그로 이동합니다. 13.02.02 30 0
344640 에러창이 안 뜨는 데 에러음이 나는 건 먼소릴까여(쓰자마자 해결) [2] 네로시엔갤로그로 이동합니다. 13.02.02 42 0
344638 고피스라는 회사 아시는분.. [2] topandbottom갤로그로 이동합니다. 13.02.02 86 0
344636 근데 C++에서 [3] Rei@디씨갤로그로 이동합니다. 13.02.02 126 0
344632 진짜 와 가짜 [5] ssonacy갤로그로 이동합니다. 13.02.02 101 0
344631 내목소리어떠냐 [1] ㅇㅇ(120.136) 13.02.02 75 0
344630 자바 물어볼게 있는데 배열 꼭 해야하나? [8] 자바킹갤로그로 이동합니다. 13.02.02 150 0
344629 한글로된 알고리즘 책 없음? [3] dsadas(114.141) 13.02.02 137 0
344628 아래 실험한거 보고 해봤음. [2] Rei@디씨갤로그로 이동합니다. 13.02.02 123 0
344627 셀룰러 네트워크간 p2p 통신은 어떻게? 큐티커갤로그로 이동합니다. 13.02.02 58 0
344626 [c++] 복사 생성자가의 인자를 받아 드리는 형이 참조인 이유는? [1] ssonacy갤로그로 이동합니다. 13.02.02 87 0
344625 재귀 함수란 .. ? [6] ssonacy갤로그로 이동합니다. 13.02.02 175 0
뉴스 걸스데이 민아, 배우 온주완과 11월 결혼 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2