Проблемы с перерисовкой окна...!!!???
Здравствуйте, все.
Объясните пожалуйста как перерисовывать окно, есть например такой код:
#include <windows.h>
HWND hWnd, hBtn;
HINSTANCE hInst;
int X(0),Y(0);
LRESULT CALLBACK WndProc(HWND,UINT,UINT,LONG);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpszCmdParam,int nCmdShow)
{
WNDCLASS WndClass;
hInst = hInstance;
MSG Msg;
char szClassName[]="TestProga";
WndClass.style =CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc =WndProc;
WndClass.cbClsExtra =0;
WndClass.cbWndExtra =0;
WndClass.hInstance =hInstance;
WndClass.hIcon =NULL;
WndClass.hCursor =LoadCursor(NULL,IDC_ARROW);
WndClass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName =NULL;
WndClass.lpszClassName =szClassName;
if(!RegisterClass(&WndClass)){
MessageBox(NULL,"Cannot register class","ERROR",MB_OK);
return 0;
}
hWnd=CreateWindow(szClassName, "Test programm",
WS_SYSMENU | WS_MINIMIZEBOX,
400, 200, 400, 400,
NULL,NULL,hInstance,NULL);
if(!hWnd){
MessageBox(NULL, "Cannot creat window", "ERROR", MB_OK);
return 0;}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Msg, NULL, 0, 0)){
TranslateMessage(&Msg);
DispatchMessage(&Msg);}
return Msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, UINT wParam, LONG lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch(Message){
case WM_CREATE:X = 100;Y = 100;
hBtn = CreateWindow("button", "temp", WS_CHILD | WS_VISIBLE, 10, 10, 100, 20, hWnd, (HMENU)100, hInst, NULL);
break;
case WM_COMMAND:
switch(wParam){
case 100:X+=5;UpdateWindow(hWnd);
break;}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);MoveToEx(hdc, 50, 50, 0);
LineTo(hdc, X, Y);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,Message,wParam,lParam);
}
return 0;
}
почему при нажатии кнопки окно не перерисовывается, зато перерисовывается если свернуть и развернуть окно.??
Пока на собственное сообщение не было ответов, его можно удалить.