Avatar billede trine_h Nybegynder
11. december 2003 - 13:34 Der er 13 kommentarer og
1 løsning

mfc menu problem

Create (NULL, _T ("My Application"), WS_OVERLAPPEDWINDOW,
rectDefault, NULL, "IDR_MENU1");

Jeg har via resource view lavet en menu med følgende id: IDR_MENU1

I ovenstående kode forsøger jeg at kalde menuen i mit hovedvindue - men der kommer en runtime fejl. Jeg er ikke helt klar over hvor problemet opstår - er det fordi id'et er forkert eller er det min create statement den er gal med?
Avatar billede jpk Nybegynder
11. december 2003 - 13:39 #1
Hvilket objekt kalder du Create på?
Avatar billede trine_h Nybegynder
11. december 2003 - 14:57 #2
den kaldes inde i constructoren på klassen CStartWnd som nedarver fra CFrameWnd
Avatar billede jpk Nybegynder
11. december 2003 - 15:04 #3
Men kalder du ikke metoden på et objekt?

Fx: m_MyObj.Create(...);
Avatar billede trine_h Nybegynder
11. december 2003 - 15:57 #4
nej - min constructor ser således ud:

CStartWnd::CStartWnd() {
Create (NULL, _T ("My Application"), WS_OVERLAPPEDWINDOW,
rectDefault, NULL, "IDR_MENU1");
}

hvis min create metode ser ud som følgende har jeg ingen problemer:
Create( NULL, "Figur-i-vindu" );   

Jeg gætter på at den ikke kan finde resourceview eller lign.
Avatar billede jpk Nybegynder
11. december 2003 - 16:02 #5
Prøv MAKEINTRESOURCE(IDR_MENU1) istedet for "IDR_MENU1"
Avatar billede trine_h Nybegynder
11. december 2003 - 18:49 #6
det virker ikke!
Avatar billede trine_h Nybegynder
11. december 2003 - 18:55 #7
er det fordi jeg mangler at at include min .rs fil i CStartWnd klassen?
Avatar billede bertelbrander Novice
11. december 2003 - 20:18 #8
Du skal ikke inkludere .rc filen i class'en, men i projektet.

Er CStartWnd er CWnd afledt class?

Virker det hvis du blot skriver IDR_MENU1 i stedet for "IDR_MENU1"?
Avatar billede jpk Nybegynder
12. december 2003 - 08:42 #9
Kan du fortælle lidt om hvad du egentlig vil?

Er det fx bare fordi du vil loade en anden menu end den der er standard?
Eller er det et projekt du har lavet fra bunden (uden wizard)?
Bruger i iøvrigt VC++6 eller 7 eller?
Avatar billede bertelbrander Novice
13. december 2003 - 01:01 #10
Hvis dit CStartWnd ligner den CStartWnd som vi har kikket på før, skal du:

Tilføje:
#include "resource.h"

til den fil hvori du har CStartWnd::CStartWnd()

Og tilføje din .rc fil projektet.

Og så bruge MAKEINTRESOURCE(IDR_MENU1) i stedet for "IDR_MENU1" som jpk skrev.

Så vil det virke.
Avatar billede trine_h Nybegynder
15. december 2003 - 11:27 #11
det gjorde tak for det.. Lig et svar - Bertel - Undgår du stadig at få point?
Avatar billede bertelbrander Novice
15. december 2003 - 19:52 #12
Jeg forsøger stadig at undgå point.
jpk bør nok have point for at foreslå MAKEINTRESOURCE().
Avatar billede trine_h Nybegynder
16. december 2003 - 11:41 #13
jpk gider du ligge et svar... og tak for hjælpen
Avatar billede jpk Nybegynder
16. december 2003 - 11:44 #14
Jo tak, hvis du kunne bruge det til noget...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester