디시인사이드 갤러리

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

갤러리 본문 영역

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

이힝(175.215) 2013.02.01 14:42:53
조회 124 추천 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/07/07 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45306 65
2870685 섹스! ♥냥덩이♥갤로그로 이동합니다. 15:23 5 0
2870684 하 씨발 1차 납품했는데 버그 원인을 못찾겠어 [3] ㅆㅇㅆ(124.216) 15:14 22 0
2870683 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 15:11 8 0
2870682 정좌불능증 [1] 재현갤로그로 이동합니다. 14:53 8 0
2870681 피부과 실장급 영업비밀 알려준다 ㅇㅇㅇㅇ(115.144) 14:52 8 0
2870680 덥다 [3] 루도그담당(211.235) 14:31 21 0
2870679 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 14:27 8 0
2870678 나님 기분 ㄱㅆㅅㅌㅊ !! ♥냥덩이♥갤로그로 이동합니다. 14:14 23 0
2870677 흠.. 이것이 밸런스? [1] ♥냥덩이♥갤로그로 이동합니다. 14:02 22 0
2870676 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 13:49 15 0
2870675 제미니 글쓰기 좋다. 수백 페이지 입력 가능 [1] 루비갤로그로 이동합니다. 12:58 23 0
2870674 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 12:52 11 0
2870673 [대한민국] 모스탄 대사 그라운드 씨에 출현 예정- [1] 프갤러(121.172) 12:37 19 0
2870672 코드 가장 잘 짜는 AI 뭐냐? [12] 아스카영원히사랑해갤로그로 이동합니다. 12:18 91 0
2870671 종종 끌올되는 픎 자컨팀 빼앗겼다는 날조선동 ㅇㅇ(110.70) 12:01 34 0
2870670 지피티 씨발 존나 답답하네 [1] 아스카영원히사랑해갤로그로 이동합니다. 11:38 56 0
2870669 한국에 과학수사 포렌식 이런직업이 많은이유는 뒷통수한방(1.213) 11:14 47 0
2870668 저커버거 빌게이츠 머스크 이런애들 좇센에서태어났으면 뒷통수한방(1.213) 11:02 45 1
2870667 헬마님 질문이 있습니다 [7] 아스카영원히사랑해갤로그로 이동합니다. 09:59 64 0
2870666 짱깨폭염 짱깨들 전부 좇센으로 물들었네 뒷통수한방(1.213) 09:55 22 0
2870664 자러 간다~ ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:29 13 0
2870662 흑흑.. 내컴이 내 선풍기 가져갔다.. ㅇㅅㅇ [5] 헤르 미온느갤로그로 이동합니다. 09:21 38 0
2870660 냥덩 세마리가 한 집에 있어~♬ [1] ♥냥덩이♥갤로그로 이동합니다. 08:54 31 0
2870659 나님은 천재전략가임 ㅇㅅㅇ [1] ♥냥덩이♥갤로그로 이동합니다. 08:14 37 0
2870658 게임엔진개발자 맥북 [7] 미니애폴리스갤로그로 이동합니다. 07:30 68 0
2870656 ❤✨☀⭐나님 시작합니당⭐☀✨❤ [1] ♥냥덩이♥갤로그로 이동합니다. 06:47 31 0
2870655 완결) 러스트 담론을 해체하다 루비갤로그로 이동합니다. 06:36 43 1
2870653 나팔 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 04:24 24 0
2870652 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 03:44 27 0
2870651 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 03:41 28 0
2870649 백신맞고 몸 망가진 2찍들은 국짐당 원망해야지 [8] 야옹아저씨갤로그로 이동합니다. 02:42 143 5
2870648 1일 1딸 멈추라고 하시면 멈추겠습니다. [3] 도리스아(121.139) 02:32 46 0
2870647 나는 기후위기를 걱정한 적이 없었는데 [9] 아스카영원히사랑해갤로그로 이동합니다. 01:34 75 0
2870646 MCP 에이전트로 코딩하면서 나는 프로그래밍 책 읽고 있는데 ㅆㅇㅆ(124.216) 01:24 42 0
2870644 그러고보니 예전 프갤러들 싹 사라졌네 [4] 박민준갤로그로 이동합니다. 00:48 122 1
2870643 울산에서 일하는 31살 공장충인데 지금 입문 어떻게 생각해 [6] ㅇㅇ(118.235) 00:25 114 0
2870642 바탕화면에 공룡 키워 보세요.... 프갤러(118.41) 07.08 88 2
2870641 프갤하는거 들켰다 프갤러(220.65) 07.08 38 0
2870639 성추행해서 미안해 너무 아파서 그랬어... 넥도리아(223.38) 07.08 37 0
2870638 고1 프로그래밍에 손을 대보려합니다 [9] 프갤러(218.239) 07.08 113 0
2870636 가끔 나 따라 다니는 유동 저거 냥덩이 아닐까 한다 [1] ㅆㅇㅆ(124.216) 07.08 55 0
2870635 조루디 ㅆㅇㅆ 잘어울려 ㅇㅇ(211.235) 07.08 43 3
2870634 블리치 정주행 예정 [1] ♥냥덩이♥갤로그로 이동합니다. 07.08 32 0
2870633 R 뭐 배우는데 OLD R베이스 문법? [2] ㅆㅇㅆ(124.216) 07.08 54 0
2870632 결혼하면 프갤러들 축의금 줘 [4] 조루디(110.35) 07.08 63 0
2870631 R은 대학원 갈 거 아니면 뭐 쓸 일 거의 없을텐데 ㅆㅇㅆ(124.216) 07.08 33 0
2870630 제발 한숨쉬지마세요 노처녀드라 [1] 조루디(110.35) 07.08 61 0
2870629 문관데 제발 도와주세요 제발 제발제발 [15] 프갤러(118.47) 07.08 99 0
2870627 주식대박났다 [2] 조루디(110.35) 07.08 95 0
뉴스 이펙스, 동화 같은 청춘 비주얼 만개! ‘소화(韶華) 3장 : 낭만 청춘’ 두 번째 포토로 비주얼 절정 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2