۰K 417 5:44:05
GetWindowLongPtr, SetWindowLongPtr Լ а ԼԴϴ. ̷ ٷ Ǿ ְ Լ ϱ Ӵϴ.
WndClass.cbWndExtra=4;
̷ 4Ʈ ǰ ġ 0 ε 4Ʈ ˴ϴ. Լ а ν մϴ. GetWindowLongPtr(hWnd,0) ȣ 0 д´ٴ ̰ 0 ƴϸ Ÿ 0̸ 簢 ν ¸ մϴ.
SetWindowLongPtr(hWnd, 0, !GetWindowLongPtr(hWnd,0)); ȣ ¸ о ݴ ٽ Ѵٴ ̸ ġȯؼ ϸ a = !a ֽϴ. ̶ ! ڴ ־а 츮 ϱ ε ݴ ´ٴ ϴ. ٸ ü ŸԿ C++ Ÿ üũ ϰ ϱ ! ʴٰ ϴ Դϴ. ~ Ȯ Ӵ ʽϴ. Ȯϰ Ϸ ؾ մϴ.
SetWindowLong(hWnd, 0, GetWindowLong(hWnd, 0)==0 ?1:0);
̸ Ÿ ϴ. ְ ˾Ƽ а ̸ ü ûѸŭ غ Դϴ. ϴµ Ϸ WORD Ÿ üũϱ մϴ.
а ٲٸ API ü C ̺귯ε C++ Ÿ ̷Ա ʿ °. ̶ ϸ ˴ϴ. ¸ WM_PAINT ٷ Ʒٿ InvalidateRect(hWnd, NULL,TRUE); ȣ ֱ ̸ ڵ ʽϴ.
|
Ȳݰġ 418 10:14:03
ڼ ߽ϴ. Ѱ ñѰ α ó ؼ Ÿ 9
LRESULT CALLBACK ChildProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) {
HDC hdc = { 0 };
PAINTSTRUCT ps = { 0 };
switch (iMessage) {
case WM_CREATE:
SetWindowLongPtr(hWnd, 0, TRUE);
return(0);
case WM_LBUTTONDOWN:
SetWindowLongPtr(hWnd, 0, GetWindowLongPtr(hWnd, 0)==0?1:0);
InvalidateRect(hWnd, NULL,TRUE);
return(0);
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
if (GetWindowLongPtr(hWnd,0)) {
Ellipse(hdc, 10, 10, 90, 90);
}
else{
MoveToEx(hdc, 10, 10, NULL);
LineTo(hdc, 90, 90);
MoveToEx(hdc, 10, 90, NULL);
LineTo(hdc, 90, 10);
}
EndPaint(hWnd, &ps);
return(0);
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
WM_CREATE SetWindowLongPtrԼ 9 "ChildCls"Ŭ 찡 TRUE ǰ WM_PAINT GetWindowLongPtrԼ TRUE о 9 Ÿ Ǹ, 콺 ư TRUE 0 ġ SetWindowLongPtrԼ õ "ChildCls"Ŭ 쿡 0 ϸ鼭 x ɷ ϴ° ´ ñմϴ. ߴ? |