menu mit *.rc date wird nicht angezeigt
-
ich auch.
Ergebnis: funktioniert nicht!
-
da hast du auch keine Header mit den defines, bzw. "mymenu" besitzt keinen wert
den der compiler identifizieren kann.
Lese mal diesen FAQ-Beitrag so ab der mitte, verwendung von Resourcen, klappt
beim Dev so wie es da steht, ich verwende diesen auch.
Wenn doch mal dann was nicht klappt oder verstehst, dann Fragen, aber bitte mit Compiler-fehlermeldung, ist einfacher dann.
-
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 istProject/Project Options/Files/mymenu.rc
->include in compilationMuss 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