Gering Napisano Grudzień 30, 2018 Autor Zgłoś Udostępnij Napisano Grudzień 30, 2018 To znowu ja . Wiem ze jestem troszeczeke uciązliwy ale dopiero co sie ucze winapi . Mam teraz problem z dialogami . Pisze kod w Dev-Cpp i w pliku zasobów tworzę sobie dwa następujące dialogi : #include <windows.h> #include "zmienne.h" IDI_ICON ICON DISCARDABLE "icon.ico" MENS MENU DISCARDABLE BEGIN POPUP "&About" BEGIN MENUITEM "&About Jenny Antivirus", IDM_ABOUT MENUITEM SEPARATOR MENUITEM "&Zakończ", IDM_END END END ABOUTBOX DIALOG DISCARDABLE 70, 50, 180, 102 STYLE DS_MODALFRAME | WS_POPUP FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,66,81,50,14 ICON IDI_ICON,9,5,5,16,16 CTEXT "Jenny Antivirus ( ver 1.00.0 )",10,40,30,100,15 CTEXT "Program is create by Damian Kacprzak",11,25,40,130,15 CTEXT "Jenny Antivirus ( ghost007@o2.pl )",12,30,50,120,10 END ENDPROGRAM DIALOG DISCARDABLE 80, 50, 181, 103 STYLE DS_MODALFRAME | WS_POPUP FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDNO,67,81,50,14 END [/color] A w procedurze obsługi okna pisze : [color=green] #include "zmienne.h" HWND Scan; HWND Stop; BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG : return TRUE ; case WM_COMMAND : switch (LOWORD (wParam)) { case IDOK : case IDCANCEL : EndDialog (hDlg, 0) ; return TRUE ; } break ; } return FALSE ; } BOOL CALLBACK EndProc (HWND EndP, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG : return TRUE ; case WM_COMMAND : switch (LOWORD (wParam)) { case IDOK : case IDCANCEL : EndDialog (EndP, 0) ; return TRUE ; } break ; } return FALSE ; } LRESULT CALLBACK JennyProc(HWND OknoJenny,UINT Message,WPARAM wParam,LPARAM lParam) { static HINSTANCE Jenny; switch(Message) { case WM_CREATE: { HFONT hFont; Jenny = ((LPCREATESTRUCT) lParam)->hInstance ; Scan = CreateWindow("button", "Scan", WS_CHILD | WS_VISIBLE , 10,10,50,25,OknoJenny, (HMENU)100,Jenny, NULL); Stop = CreateWindow("button", "Stop", WS_CHILD | WS_VISIBLE , 10,40,50,25,OknoJenny, (HMENU)101,Jenny, NULL); CreateWindow ("LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_SORT, 70,10, 400, 200, OknoJenny, (HMENU) 123, (HINSTANCE) GetWindowLong (OknoJenny, GWL_HINSTANCE), NULL) ; SendMessage(Scan,WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT ),0); SendMessage(Stop,WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT ),0); return 0; } break; case WM_COMMAND: { if(wParam == IDM_END) { SendMessage(OknoJenny,WM_DESTROY,wParam,lParam); } if(wParam == IDM_ABOUT) { DialogBox (Jenny, TEXT ("AboutBox"),OknoJenny, AboutDlgProc) ; } if(wParam == 100) { DialogBox (Jenny, TEXT ("End"),OknoJenny,EndProc) ; } } break; case WM_CLOSE: { } break; case WM_PAINT: { HDC hdc; hdc = GetDC(OknoJenny); GetStockObject(DEFAULT_GUI_FONT ); TextOut(hdc,100,200,"www",3); ReleaseDC(OknoJenny,hdc); } break; case WM_DESTROY: { PostQuitMessage(0); } break; } return DefWindowProc(OknoJenny,Message,wParam,lParam); } To mi nie chodzi . Plik exe jest generowany a po kliknięciu przycisku Scan nic sie nie dzieje . Porszę o pomoc . Dziękuje z góry . Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Jarema Napisano Grudzień 30, 2018 Zgłoś Udostępnij Napisano Grudzień 30, 2018 DialogBox (Jenny, TEXT ("End"),OknoJenny,EndProc) ; Zamiast tego TEXT("End") daj (LPCTSTR)End, i zmien sobie identyfikator dialoga na normalna liczbe a nie ciag znakow. Wiem ze tak tez sie da, ale u mnie to nie dzialalo przez to wlasnie. 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.