Aspect Napisano Maj 18, 2018 Autor Zgłoś Udostępnij Napisano Maj 18, 2018 TinS napisał: Powinienem zajac sie zbieraniem znaczkow, a nie programowaniem - za glupi na to jestem :( Nie, to jest wszystko proste, tylko ja tak zamieszalem - sorry. Oto przykladowy kod o ktory prosiles, moze bardizej Ci pomoze. W razie jak bys nie wiedzial co robia niektore funkcje to sobie poczytaj o nich na stronei https://msdn.microsoft.com/library/. No dobra, daje juz ten kod: Plik .rc: #include <windows.h> #include "resource.h" IDM_MAIN MENU { POPUP "Program" { MENUITEM "Okno dialogowe",IDM_DIALOG MENUITEM SEPARATOR MENUITEM "Zamknij",IDM_CLOSE } } IDD_DIALOGBOX DIALOGEX 0, 0, 240, 80 STYLE DS_CENTER | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX CAPTION "Dialog Box" FONT 8, "MS Sans Serif", 0, 0, 0x0 { LTEXT "To jest przykladowy DialogBox.",IDC_STATIC,10,11,120,11,SS_NOPREFIX DEFPUSHBUTTON "OK",IDOK,180,10,50,15,WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,180,27,50,15 } Plik resource.h: #define IDC_STATIC -1 #define IDM_DIALOG 100 #define IDM_CLOSE 101 W pliku .cpp musisz zamienic linie: wincl.lpszMenuName = NULL; na wincl.lpszMenuName = "IDM_MAIN"; . Do funkcji WindowProcedure dodaj: case WM_COMMAND: switch(LOWORD(wParam)) { case IDM_DIALOG: DialogBox(GetModuleHandle(NULL),"IDD_DIALOGBOX",hwnd,(DLGPROC)DialogProcedure); break; case IDM_CLOSE: PostMessage(hwnd,WM_CLOSE,0,0); break; } , i do calego kodu dodaj jeszcze funkcje: LRESULT CALLBACK DialogProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hdlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; } Mam nadziueje, ze bedzie dzialac. Powodzenia. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.