menu mit *.rc date wird nicht angezeigt



  • Es geht aber trotzdem. Man muss dann aber eben mymenu als String benutzen und nicht als ID. Ich habs ja getestet und bei mir wurde das Menü angezeigt.



  • Mic.. du bist geil^^.

    und über die Projekt-Optionen sollte
    sichergestellt werden das diese auch in die Kompilation einbezogen ist

    Project/Project Options/Files/mymenu.rc
    ->include in compilation

    Muss man des auch bei dem mfc++ einstellen?
    - weil es da auch nicht funktionierte



  • klappt nun auch mit mvc++.
    Aber kann es sein das diese *.h datei immer "resource.h" heißen muss?
    - weil wenn ich diese anders nenne, kommt eine fehlermeldung in der *.rc Datei:

    fatal error RC1004: unexpected end of file found



  • Hört sich eher nach einem Syntax-Fehler an 🙄



  • wieso funktioniert LoadMenu() nicht?:

    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
     static TCHAR szAppName[] = TEXT ("dasmenu") ;
         HWND         hwnd ;
         MSG          msg ;
         WNDCLASS     wndclass ;
    
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = /*"mymenu"*/NULL;
         wndclass.lpszClassName = szAppName ;
    
         if (!RegisterClass (&wndclass))
         {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
              MessageBox (NULL, TEXT ("Programm arbeitet mit Unicode und setzt Windows NT voraus!"), 
                          szAppName, MB_ICONERROR) ;
              return 0 ;
         }
    
          hwnd = CreateWindow (szAppName,                 // Name der Fensterklasse
                      TEXT ("Das erste echte Programm"),  // Fenstertitel
                      WS_OVERLAPPEDWINDOW,                // Fensterstil
                      CW_USEDEFAULT,                      // X-Position des Fensters
                      CW_USEDEFAULT,                      // Y-Position des Fensters
                      CW_USEDEFAULT,                      // Fensterbreite
                      CW_USEDEFAULT,                      // Fensterhöhe
                      NULL,                               // übergeordnetes Fenster
                      0,                               // Menü
                      hInstance,                          // Programm-Kopiezähler (Programm-ID)
                      NULL) ;                             // zusätzliche Parameter
    
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
    
    	 LoadMenu(hInstance,"mymenu");//<<<<<<<<<<<<<
         while (GetMessage (&msg, NULL, 0, 0))
         {
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
         }
         return msg.wParam ;
    }
    


  • wndclass.lpszMenuName  = "mymenu";
    

    müsste eigentlich funktionieren
    und loadmenu lässt du komplett weg.



  • ich will es aber mit loadmenu machen!
    -> viele wege führennach rom, nicht nur einer..wäre ja schlimm 😮



  • dann müsstest du beim dritt letzten parameter von createwindow dein loadmenu schreiben. (nicht getestet und weis auch nicht ob es funktioniert)



  • glaube kaum das es dahin kommt, da loadmenu für dynamisches zeugs da ist



  • SetMenu


Anmelden zum Antworten