Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzę menu oraz problem z plikiem zasobu RC

Ostatnio zmodyfikowano 2020-08-05 17:20
Autor Wiadomość
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 :)  
P-177410
pekfos
» 2020-08-04 16:41:02
Chyba pominąłeś kilka kroków.
» Kurs WinAPI, C++ » PodstawyMenu lekcja
Mamy więc uchwyt do nowego menu, teraz tylko wstawimy go do funkcji CreateWindowEx, żeby menu pojawiło się w głównym oknie naszego programiku.
P-177411
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++
C/C++
#include <windows.h>

/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) {
    switch( Message ) {
       
        /* Upon destruction, tell the main thread to stop */
    case WM_DESTROY: {
            PostQuitMessage( 0 );
            break;
        }
       
        /* All other messages (a lot of them) are processed using default procedures */
        default:
        return DefWindowProc( hwnd, Message, wParam, lParam );
    }
    return 0;
}

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG msg; /* A temporary location for all messages */
   
    /* zero out the struct and set the stuff we want to modify */
    memset( & wc, 0, sizeof( wc ) );
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.lpfnWndProc = WndProc; /* This is where we will send messages to */
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
   
    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszClassName = "WindowClass";
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); /* Load a standard icon */
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); /* use the name "A" to use the project icon */
   
    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, /* x */
    CW_USEDEFAULT, /* y */
    640, /* width */
    480, /* height */
    NULL, NULL, hInstance, NULL );
   
    if( hwnd == NULL ) {
        MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK );
        return 0;
    }
   
    /*
    This is the heart of our program where all input is processed and
    sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    this loop will not produce unreasonably high CPU usage
    */
    while( GetMessage( & msg, NULL, 0, 0 ) > 0 ) { /* If no error is received... */
        TranslateMessage( & msg ); /* Translate key codes to chars if present */
        DispatchMessage( & msg ); /* Send it to WndProc */
    }
    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.
C/C++
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 :)
P-177412
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.
P-177413
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
P-177415
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.
P-177420
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 !
P-177422
« 1 »
  Strona 1 z 1