Öffnen von einer Datei ect.
-
weglassen
Ich empfehle dir aber dich zuerst mit den Grundlagen zu beschäftigen.
www.mut.de -> leseecke -> VC++ in 21 Tagen
-
Das buch habe ich schon hinter mir, aber auf wirklich echte problem liefert das keine antwort...
wenn ich das weg mache zeigt er das bild nicht mehr an und gibt einen fehler aus
warning C4129: 'S' : Nicht erkannte Folge von Escape-Zeichenwas soll das?? (der fehler ist in der zeile wo ich den pfad angebe)
-
Zeig mal deinen Code mit Pfad
-
Code:
if (m_dbitmapdlg.DoModal() == IDOK)
{
// Gewählten Dateinamen ermitteln
m_sBitmap = "k:\...\bitmap\2.bmp";// Gewählte Bitmap-Datei laden
HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),
m_sBitmap, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION);
.
.
.
-
http://www.c-plusplus.net/forum/viewtopic.php?t=39458&highlight=c4129
m_sBitmap = "k:\\\\...\\bitmap\\2.bmp";
-
ich glaub das ist nichts für mich das VC++
ich habe doch den doppelten \\
oder meinst du das ich mit dem Zeiger
-
ich habe es gemerkt
fehler weg
Jetzt zeigt es mir nur ein leeres DF andenke das es an der 1. if-schleife hängt weiter läuft er nicht.
if( m_dbitmapdlg.DoModal() = IDOK)m_dbitmapdlg bezieht sich auf die Klasse des zweiten Fensters
was kann ich statt desen noch nehmen, in der if-schleife oder brauche ich die
gar nicht??
könnt ihr mir ein bsp. zeigen??
-
Die ESC-Sequence hat nichts mit VC++ zu tun sondern sind Grundlagen von C/C++.
Mit "\" wird nunmal eine ESC-Sequence eingeleitet. Um das zu umgehen muss man noch ein "\" voranstellen. Also "\"
Hat der string 2 "\" also "\" braucht man dann 4 "\\\" u.s.w.
-
Hättest du nicht 3 Threads aufgemacht dann hättest du die Antwort
DoModal öffnet den Dialog und kehrt erst zurück wenn dieser geschlossen wird.
Dort wo du eine eine Instanz des 2ten Dlg anlegst kannst du dann vor DoModal dein Bitmap übergeben.
Oder das Bitmap gleich im 2ten Dlg laden. (bester Ort dafür ist OnInitDialog)
-
das mit den Escape-frequenzen hab ich ja soweit verstanden.
Es funktioniert ja auch (vielleicht)
Jetzt zeigt er aber ein leeres D-Fenster an.
Ich habe mal probiert er springt nicht in die 1. if-schleife.
siehe oben.
und in der wird ja z.B. auch das Bild eingelesen.Hier nochmal die ganze if-schleife
if (m_dbitmapdlg.DoModal() == IDOK)
{
// Gewählten Dateinamen ermitteln
m_sBitmap = "k:\\\...\\bitmap\\2.bmp";// Gewählte Bitmap-Datei laden
HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),
m_sBitmap, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION);// Ist Handle für das geladene Bild gültig?
if (hBitmap)
{// Aktuelles Bitmap löschen
if (m_bmpBitmap.DeleteObject())
// War Bitmap vorhanden, lösen
m_bmpBitmap.Detach();
// Aktuell geladenes Bitmap mit Bitmap-Objekt verbinden
m_bmpBitmap.Attach(hBitmap);
//zweites Fenster öffnen
// m_dbitmapdlg.DoModal();
}}
-
Hallo!
Jetzt muss ich mich mal einmischen:
Lieber Kobold, woher hast du den Ausdruck "if-Schleife"?

Abgesehen davon, dass er nicht korrekt ist (worauf ich jetzt nicht weiter eingehe) war er in meiner TAFI Klasse sehr beliebt (- allerdings nicht bei den Lehrern.)
Das heisst für mich:
Entweder warst du in meiner Klasse bzw. kennst jemanden davon - oder diese Wortkombination ist echt faszinierend.Sorry, aber bevor ich vor Neugier platze musste das mal raus.
-
Nochmals:
Wenn du einen Dialog öffen willst der ein eigenes Bitmap hat dann musst du das Bitmap vorher laden.if (m_dbitmapdlg.DoModal() == IDOK) // Hier wird der Dialog geöffnet { // Hier bist du wenn er wieder geschlossen wird
-
sorry wegen diesem Ausdruck nur ist der mir am geläufigsten,
ich war aber weder in deiner Klasse noch habe ich den namen deiner Klasse schonmal gehört.P.S. die die ich kenne sagen das fast alle so, sogar die lehrer
Übrigens muss ich mich mal bedanken bei Unix, ohne ihn wäre ich noch nicht so weit und wenn ich das irgendwann verstehe (sprich einen meter mit meinen stuhl zur seite fahre) seit ihr mich auch erstmal los, zumindest mit diesem Problem.
-
Das ist mir klar mit dem DoModal und dem laden vorher, er macht es nur nicht
wenn ich es lade vor der schleife hab ich einen fehler in der schleife zeigt es mir ein leeres df an.....ich muss doch ganz schön nerven
-
Die Schleife hat nichts mit dem Anzeigen deinen Bitmaps in dem 2ten Dialog zu tun.
Die Schleife von dir wird nur duchlaufen wenn im 2ten Dialog der OK-Button gedrückt wird.
-
er durchläuft sie aber nicht
-
Poste mal die gesamte Funktion
-
void CLala12Dlg::OnOpen() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen // Dialogfeld Öffnen erzeugen if (m_dbitmapdlg.DoModal() == IDOK) { // Gewähltes bitmap ermitteln m_sBitmap = "k:\\\\...\\bitmap\\2.bmp"; // Dialogfeld Öffnen anzeigen und Ergebnis übernehmen // Gewählte Bitmap-Datei laden HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(), m_sBitmap, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); // Ist Handle für das geladene Bild gültig? if (hBitmap) { // Aktuelles Bitmap löschen if (m_bmpBitmap.DeleteObject()) // War Bitmap vorhanden, lösen m_bmpBitmap.Detach(); // Aktuell geladenes Bitmap mit Bitmap-Objekt verbinden m_bmpBitmap.Attach(hBitmap); } } // gibt den Pfad wieder // MessageBox(m_ldFile.GetPathName(), "Pfad der Datei", MB_OK|MB_ICONINFORMATION); }
-
Problem gelöst alles funktioniert
DANKE
