Slawek92 Temat założony przez niniejszego użytkownika |
Tworzę menu oraz problem z plikiem zasobu RC » 2020-08-04 13:42:09 Jak w temacie nie wiem czy taki temat był na tej stronie ale go zakładam. W czym tkwi problem już opisuje; Posiadam program Dev++ w nim mam stworzymy szkielet programu okienkowego ( nie wiem czy dobrze obrałem w słowa ) , dalej w tym programie chce stworzyć własne menu czytałem w internecie że do tego są potrzebne kolejne pliki zasobu czyli tzw "rc" wszystko pięknie fajnie mam jakiś szkielet menu głównego którego znalazłem w internecie ale nie wiem czemu mi nie działa jak klikam na projekcie dodaj nowy plik, wszystko elegancko się ładuje ale jak gdy chce uruchomić program to tego menu nadal nie wyświetla co robię źle ? Może ktoś pomóc jak będę w domu podeśle zdjęcia jak to wszystko wygląda pozdrawiam dziękuję za wsparcie :) |
|
pekfos |
» 2020-08-04 16:41:02 Chyba pominąłeś kilka kroków. MenuMamy więc uchwyt do nowego menu, teraz tylko wstawimy go do funkcji CreateWindowEx, żeby menu pojawiło się w głównym oknie naszego programiku. |
|
|
Slawek92 Temat założony przez niniejszego użytkownika |
pmoc » 2020-08-04 18:43:34 Może ja przytoczę co już posiadam bo tak z telefonu napisałem troszkę nie składnie. Nie wiem czy mogę kody pisać tutaj ale załóżmy że mogę To jest mój szkielet z programu DEV++ #include <windows.h>
LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) { switch( Message ) { case WM_DESTROY: { PostQuitMessage( 0 ); break; } default: return DefWindowProc( hwnd, Message, wParam, lParam ); } return 0; }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX wc; HWND hwnd; MSG msg; memset( & wc, 0, sizeof( wc ) ); wc.cbSize = sizeof( WNDCLASSEX ); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); if( !RegisterClassEx( & wc ) ) { MessageBox( NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "Caption", WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL ); if( hwnd == NULL ) { MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } while( GetMessage( & msg, NULL, 0, 0 ) > 0 ) { TranslateMessage( & msg ); DispatchMessage( & msg ); } return msg.wParam; } Dalej gdzieś czytałem w internecie żeby stworzyć zasoby trzeba posiadać plik "rc" dzięki niemu podobno można jakoś połączyć plik cpp oraz rc i wtedy nam powstanie Menu Szkielet Menu który zaczerpnąłem z internetu zapisałem go jako "rc" i dodałem do zasobów projektu. 200 MENU { POPUP "&Plik" { MENUITEM "&Nowy", 100 MENUITEM "&Otwórz", 101 MENUITEM "&Zapisz", 102 MENUITEM SEPARATOR POPUP "&Importuj" { MENUITEM "&Tekst", 103 POPUP "O&braz" { MENUITEM "Bit&mapa", 104 MENUITEM "&JPEG", 105 } } MENUITEM SEPARATOR MENUITEM "&Koniec", 106 } MENUITEM "&Edycja", 108 } Niestety mam błąd i nie wyświetla mi menu mimo iż plik "rc" jest zapisany tam gdzie plik main i plik cpp dopiero się uczę C++ dlatego tak skomplikowanie tłumaczę. Z góry proszę o wyrozumiałość i pomoc będę stokroć wdzięczny co robię nie tak :) |
|
pekfos |
» 2020-08-04 20:31:28 Posiadanie pliku to trochę mało. Musisz go dodać do projektu i odwołać się do niego w kodzie. Podałem link do kursu, gdzie masz wszystkie potrzebne informacje. |
|
Slawek92 Temat założony przez niniejszego użytkownika |
» 2020-08-05 10:33:14 Kolego właśnie problem tkwi w tym że dodałem taki plik do projektu tam gdzie jest plik main. Przeczytałem już materiał po części go zrozumiałem natomiast nie wiem jak się odwołać do niego no ale poczytam sobie przykłady także no , jestem zielony w C++ dopiero stawiam kroki przydało by się mi znać chociaż podstawy teoretyczne znaczeń do czego służą odpowiednie comendy może polecisz coś jakąś książkę dla początkujących c++ czytałem na początku gdzieś na stronie że trzeba znać Język C żeby programować C++ bo C ++ jest takim rozszerzeniem i taką ala kontynuacją a Język C to język wprowadzający w świat programowania czy to prawda mógłbyś doradzić jakąś dobrą książkę z ćwiczeniami :)? Byłbym wdzięczny pozdrawiam i dzięki serdeczne za rady |
|
pekfos |
» 2020-08-05 17:03:35 Nie trzeba znać C, by programować w C++. Dyskusji o książkach było sporo, na przykład Jaką wybrać książkę do nauki języka C++, ale tutejszy kurs też się nada. Skoro jesteś całkiem początkujący, pisanie programu okienkowego nie jest najlepszym pomysłem. Powinieneś znać podstawy przynajmniej na tyle, by mieć ogólne pojęcie o działaniu kodu, który widzisz. Materiały dotyczące konkretnych bibliotek nie będą tłumaczyć takich rzeczy, więc nie powinno dziwić, że niewiele wynosisz czytając je teraz. |
|
Slawek92 Temat założony przez niniejszego użytkownika |
» 2020-08-05 17:20:12 Dziękuje kolego za link do lekcji , przysiadłem sobie tak na spokojnie i udało się zrobiłem kawkę poczytałem wytężyłem umysł i się udało :) Jestem w niebo wzięty że udało się utworzyć menu w programie co daje mi wielkiego kopa żeby się dalej uczyć tego C++ bo chciałbym stworzyć program pomocny również dla innych mam nadzieje że się uda i że się nie poddam na razie mam kopa na dalsze zmagania ;) Co do książki widziałem podobno są dobre autora Stephen Prat ,taki myślę podręcznik zakupić , Uwielbiam poznawać nowe rzeczy i cieszyć się że wychodzą a że jestem samoukiem to daje mi to dużo radości :) Dziękuje kolego za odzew i nakierowanie :) Pozdrawiam Cie serdecznie ! |
|
« 1 » |