Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » keine OnInitDialog

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
22.02.2006, 15:43 Uhr
~-]DrLoLig[-
Gast


Hi!
Bin MFC Anfänger und bin dabei eine Dialoganwendung zu schreiben aus welcher heraus ein neuer Dialog geöffnet wird(zum Eingeben von Daten). In der Klasse von meinen normalen Hauptdialog existiert eine OnInitDialog. Aber bei dem zweiten neu erstellten Dialog nicht!. Ich hab die Klasse zu dem 2 .Dialog einfach über Rechtsklick auf die Ressource und dann auf "Klasse hinzufügenn.." geklickt.
Ich möchte nämlich gern ein paar Sachen initialiesieren wenn der Dialog aufgerufen wird aba ich wüsste nicht wo ichs hinschreiben soll ?

Für jede Hilfe dankbar

mfg



C++:
// editstamm.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include "nfd.h"
#include "nfdDlg.h"
#include "editstamm.h"


// editstamm-Dialogfeld

IMPLEMENT_DYNAMIC(editstamm, CDialog)

editstamm::editstamm(CWnd* pParent /*=NULL*/)
    : CDialog(editstamm::IDD, pParent)
    
{
    
}
    
editstamm::~editstamm()
{
}

void editstamm::DoDataExchange(CDataExchange* pDX)
{
    
    
    
    CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_ANR, m_arztnr);
    DDX_Control(pDX, IDC_NAME, m_name);
    DDX_Control(pDX, IDC_RUFNAME, m_rufname);
    DDX_Control(pDX, IDC_STRASSE, m_strasse);
    DDX_Control(pDX, IDC_PLZ, m_plz);
    DDX_Control(pDX, IDC_ORT, m_ort);
}    


BEGIN_MESSAGE_MAP(editstamm, CDialog)

END_MESSAGE_MAP()



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.02.2006, 16:37 Uhr
Tommix



Hallo,
selbst ist der Mann! In VC 6:
Klassenassi öffnen (Strg-W), Seite "Nachrichtenzuordnungstabellen", unter Klassenname Deine Dialogklasse wählen, in der Liste "Nachrichten" markierst Du "WM_INITDIALOG" -> Funktion hinzufügen -> Code bearbeiten -> fertig.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.02.2006, 17:01 Uhr
~-]DrLoLig[-
Gast


Vielen Dank für die Antwort.
Nur leider benutze ich VC2005 und konnte nur eine Liste "Meldungen" finden in der die "WM_INITDIALOG" aba leider nicht aufgeführt ist

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.02.2006, 17:15 Uhr
xXx
Devil


Weil du nach der Liste Virtual Functions suchen musst... in der findest du die virtual func. OnInitDialog... solange deine Form ein Dlg ist
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.02.2006, 17:24 Uhr
~-]DrLoLig[-
Gast


Re!
Besten Dank, hatte jetzt einfach die OnCreate
Aber wo find ich denn die besagte Liste *hrhr*

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.02.2006, 17:39 Uhr
~-]DrLoLig[-
Gast


Meinte natürlich "hatte jetzt einfach die OnCreate genommen"
Mal noch nen zweites kleines Problem in meinen Hauptdialog ist nen ListCtrl(m_list).
Beim Öffnen des zweiten Dialogs sollen Daten aus der Liste mit in den neuen Dialog genommen werden. Irgend wie krieg ich das nur net hin :o)

CnfdDlg ist die Klasse des Hauptdialogs mit dem Listcontrol und der folgende Code ist bisher bei der OnCreate Funktion vom 2 Dialog eingefügt. Nur sobald er Zeile 2 hat kommt ne MessageBox wo irgendwas von "Debug Assertion Failed" drin steht.


C++:
CnfdDlg dlg1; //1
dlg1.m_list.GetItemText(m_list.GetFirstSelectedItem(), 0);//2




mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.02.2006, 18:27 Uhr
xXx
Devil


hmm joa... kann sein mach mal so:

pack in die CnfdDlg klasse ne GetListCtrl(void); func... gib da als return &m_list...

dann kannst de einfach folgendes machen:

C++:
CnfdDlg *pDlg1 = new CnfdDlg();
pDlg1->Create(IDD_MYDIALOG, this);
CListCtrl* pList = pDlg1->GetListCtrl();
pList->GetItemText(pList->GetFirstSelectedItem(), 0);


Hoffe mal das ich keinen Fehler drin hab... das ganze ist jetzt kein Modaler Dlg mehr... nuja ;D
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.02.2006, 20:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Im 2003er und im 2005er auch hast du im "Eigenschaften" Fenster vom Dialog noch 3 Buttons, einen für Messages, einen für die Sachen wie OnInitDialog und dann noch glaub ich für die Schaltflächen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.02.2006, 08:15 Uhr
-]Dr.LoLig[-



Morgen!
Also ich hab im "Eigenschaften Fenster" nur die 3: Meldungen(ist die InitDialognicht dabei), Eigenschaften und Steuerelementeereignisse.
Hab ebend auch mal xXx seinen Code ausprobiert aber ist wie bei mir, er bringt mir sobald ich auf den Button wo der Dialog öffnet drücke einen MessageBox mitn "Debug Assertion Fehler"

mfg

C++:
CnfdDlg *pDlg1 = new CnfdDlg();
pDlg1->Create(IDD_MYDIALOG, this);//<--Fehler!!!!!
CListCtrl* pList = pDlg1->GetListCtrl();
pList->GetItemText(pList->GetFirstSelectedItem(), 0);


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.02.2006, 08:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm frag mich wieso die 2005er Version schlechter geworden ist als die 2003er, Codecompletion funktioniert nicht gescheit, den Klassenassi haben sie noch mehr beschnitten, ich frag mich was der ganze müll soll

Im 2003er gabs noch "Überschreibungen" da war eben unter anderem OnInitDialog dabei.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: