Dobrý den,
před nedávnem jsem začal s C++ a WIN32 API ... avšak mám jeden zásadní problém. celý den hledám na internetu a už začínám mít na slovo "handle" alergii, ale svůj problém jsem furt nevyřešil... mám program, jedno okno, které má klasickou nabídku (soubor,atd) a ve svém těle má namalovanou při spuštění čáru. Já chci jenom aby,když otevřu nabídku soubor, kliknu na položku "nový" tak aby čára která je v těle okna aktuálně vymazala a namalovala jiná ... repsektive jde mi o to,jak okno donutit aby na nějakou určitou akci změnil jeho obsah.
#include <windows.h>
#define IDM_NEW 40001
LRESULT CALLBACK ProceduraOkna(HWND hWnd, UINT uZprava, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hInstancePredchozi,LPSTR lpCmdLine, int iCmdShow){
HWND hWnd;
TCHAR JmenoOkna[] = TEXT("Win32 API Zkouška");
MSG msg;
WNDCLASSEX wc;
wc.cbSize=sizeof(wc);
wc.style= CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc=ProceduraOkna;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor=(HCURSOR)LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW);
wc.lpszMenuName="MAINMENU";
wc.lpszClassName=JmenoOkna;
wc.hIconSm=NULL;
RegisterClassEx(&wc);
hWnd = CreateWindowEx(
0,
JmenoOkna,
JmenoOkna,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
};
return msg.wParam;
}
LRESULT CALLBACK ProceduraOkna(HWND hWnd, UINT uZprava, WPARAM wParam, LPARAM lParam){
PAINTSTRUCT ps;
HDC hDC;
HMENU hMenu;
switch (uZprava){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);
MoveToEx(hDC,10,10,NULL);
LineTo(hDC,100,100);
EndPaint(hWnd, &ps);
return 0;
case WM_COMMAND:
switch (LOWORD(wParam)){
case IDM_NEW:
SendMessage(hWnd,WM_PAINT,NULL,NULL);
hDC=BeginPaint(hWnd,&ps);
MoveToEx(hDC,10,10,NULL);
LineTo(hDC,150,150);
EndPaint(hWnd, &ps);
return 0;
};
};
return DefWindowProc(hWnd, uZprava, wParam, lParam);
};
Budu rád za všechny Vaše odpovědi.Děkuji
PS: v kódu je i něco to jak jsem se pokoušel problém vyřešit