Menü laden
-
void CAIDEDlg::OnPaint() { CMenue menueobject; menueobject.create_menu(IDR_MENU1); ...
ich habe einen einfachen dialog und da ein menü dort nicht standart ist lade ich es, aber wenn ich jetzt andere dlg öffne und dann verschiebe erscheint dort auch das menü, wo soll ich den code also reinschreiben, so dass es nur einmal geladen wird
-
OnInitDialog hinter den Aufruf der Basisklasse.
-
estartu_de schrieb:
OnInitDialog hinter den Aufruf der Basisklasse.
BOOL CAIDEDlg::OnInitDialog() { CMenue menueobject; menueobject.create_menu(IDR_MENU1); CDialog::OnInitDialog(); ....
dann hab ich kein menü mehr
-
estartu_de schrieb:
OnInitDialog hinter den Aufruf der Basisklasse.
steff3 schrieb:
BOOL CAIDEDlg::OnInitDialog() { CMenue menueobject; menueobject.create_menu(IDR_MENU1); CDialog::OnInitDialog(); // Aufruf der Basisklasse ....
-
BOOL CAIDEDlg::OnInitDialog() { CDialog::OnInitDialog(); CMenue menueobject; menueobject.create_menu(IDR_MENU1); // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt // wenn das Hauptfenster der Anwendung kein Dialogfeld ist SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // TODO: Hier zusätzliche Initialisierung einfügen return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
immer noch nicht *wein*
-
Hmm, das ist lokal - mach das mal als Member des Dialoges.
Und dann musst du doch noch SetMenue machen, denke ich.Wieso machst du das eigentlich nicht über die Resource?
Da ist das mit ein paar Klicks erledigt.
-
Hmm, das ist lokal - mach das mal als Member des Dialoges.
Und dann musst du doch noch SetMenue machen, denke ich.
-
estartu_de schrieb:
Hmm, das ist lokal - mach das mal als Member des Dialoges.
Membervariablen stehen in der Headerdatei und existieren so lange wie das Objekt selbst - nicht nur in einer Funktion.
estartu_de schrieb:
Und dann musst du doch noch SetMenue machen, denke ich.
Okay, das war ne Vermutung (es scheint die Funktion nicht zu geben...) aber irgendwo muss man das Menü doch noch an den Dialog hängen.
Hast du den zweiten Teil des Posts mal ausprobiert?
-
was du suchst müsste eigentlich Attach sein
das ganze müsste mehr oder weniger so aussehen, nur verwende ich da das attach falsch
BOOL CMenue2Dlg::OnInitDialog() { CDialog::OnInitDialog(); // Hinzufügen des Menübefehls "Info..." zum Systemmenü. // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); CMenu pMenu; pMenu.LoadMenu(IDR_MENU1); pMenu.Attach(pMenu.GetSafeHmenu()); // Hier Fehler von mir ...
btw ich hab das jetzt mit ner menu ressource gemacht, weils einfach bequemer ist ^^
-
ach ich sollte so früh am morgen nicht von sachen reden von denen ich keine ahnung hab, das mit attach ist blödsinn, sry.
Also ignorier einfach den letzten Post und machs so ^^:BOOL CMenue2Dlg::OnInitDialog() { CDialog::OnInitDialog(); // Hinzufügen des Menübefehls "Info..." zum Systemmenü. // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); CMenu pMenu; pMenu.LoadMenu(IDR_MENU1); SetMenu(&pMenu); if (pSysMenu != NULL)
getestet und funktioniert