+ Antworten
Ergebnis 1 bis 10 von 10

MFC - Bitmaps/Steuerlemente anordnung

Diskussion über MFC - Bitmaps/Steuerlemente anordnung in C und C++ der Kategorie Programmierung; Hallo leute, Ich muss für die Schule ein MFC-Projekt machen. (Vorne weg ich bin von MFC kein Stück überzeugt, ganz ...

  1. #1
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard MFC - Bitmaps/Steuerlemente anordnung

    Hallo leute,

    Ich muss für die Schule ein MFC-Projekt machen. (Vorne weg ich bin von MFC kein Stück überzeugt, ganz ehrlich es ist ******e )

    Naja jedenfalls, ich scheitere schon allein am Layout meiner Anwendung!
    Also ich habe das ganze Dialogfeldbasierend gemacht.
    Ich möchte jetzt mehrere Bitmaps und ein paar Buttons auf dem Fenster anordnen.
    Nur ich kriege es einfach nicht gebacken, dass sie richtig angeordnet sind. Also z.b. eine Bitmap im Hintergrund, darüber paar Buttons, aber er ordnet alles immer unterschiedlich an (z.b. das eine über dem anderen, wenn ich die transperenz verändere, wieder ganz anders usw.), wenn ich 3 Bitmaps habe sehe ich die dritte (als letztes hinzugefügte) überhaupt nicht!
    Kann man nicht einfach sagen dieses Objekt soll ganz in den Hintergrund, das dadrüber und das 3te ganz in den Vordergrund?

    Auch wenn ich das Fenster start, soll er 2 Bitmaps auf 2 Buttons laden, macht es bei einem. Den anderen sehe ich nur wenn ich mit der Maus drüber gehe...

    Darüber hinaus wenn ich die Größe des Fensters einstellen will, habe ich nur die Möglichkeit gefunden es mit der Maus verschiedenen groß zu ziehen. Habe es so eingestellt das unten 642x482 steht, wenn ich hab eine Bitmap mit z.b. der Breite 642 drauf packe ist sie viel zu klein erst bei 942 passt sie richtig drauf wieso das??

    Also ganz ehrlich da war VB tausendmal besser...

    Ich hoffe ihr könnt mir helfen, weil ich richtig am verzweifeln bin was die Gestaltung angeht...


    MfG Artery

  2. #2
    Administrator + Moderator
    C++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET
    Avatar von Klotzkopp
    Reg.-Datum
    10.07.2001
    Ort
    Essen
    Beiträge
    8.980

    Standard

    Zitat Zitat von Artery Beitrag anzeigen
    Kann man nicht einfach sagen dieses Objekt soll ganz in den Hintergrund, das dadrüber und das 3te ganz in den Vordergrund?
    Mit Format -> Tab Order kannst du die Reihenfolge einstellen.

    Zitat Zitat von Artery Beitrag anzeigen
    Auch wenn ich das Fenster start, soll er 2 Bitmaps auf 2 Buttons laden, macht es bei einem. Den anderen sehe ich nur wenn ich mit der Maus drüber gehe...
    Dann hast du wohl etwas falsch gemacht. Da du nicht beschreibst, was du gemacht hast, ist dir hier schwer zu helfen.

    Zitat Zitat von Artery Beitrag anzeigen
    Habe es so eingestellt das unten 642x482 steht, wenn ich hab eine Bitmap mit z.b. der Breite 642 drauf packe ist sie viel zu klein erst bei 942 passt sie richtig drauf wieso das??
    Weil die Größenangaben nicht in Pixel angegeben sind, sondern in "Dialog Units"

    Zitat Zitat von Artery Beitrag anzeigen
    Ich hoffe ihr könnt mir helfen, weil ich richtig am verzweifeln bin was die Gestaltung angeht...
    Ist die Gestaltung denn ein wichtiger Bestandteil des Projekts, oder legst du da vielleicht gerade zu viel Wert auf unnötiges Blendwerk?
    "Funktioniert nicht" ist keine ausreichende Problembeschreibung.

  3. #3
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard

    Okay das mit der anordnung hat geklappt! Vielen Dank...

    Wie kriege ich denn die Größe des Dialogs in Pixeln hin?

    Und noch eine Frage, wie kann ich Statictext so modifizieren dass man nur die Schrift sieht? Kann man auch Schriftarten importieren?
    Ich würde gerne eine Schriftart benutzen die ich in Photoshop habe..

    MfG Artery

  4. #4
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard

    Ich habs jetzt so zur hälfte mit der Schrift hinbekommen, aber eine sache klappt immer noch nicht, ich will die Schriftgröße eines einzelnen StaticText ändern, kann mir mal jemand bitte helfen??

    €dit:

    Code:
    void CVokabeltrainer20enhancedView::OnPaint()
    {
    	//CPaintDC dc(this); // device context for painting
    	// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein.
    	// CFormView::OnPaint() soll zum Zeichnen von Meldungen nicht aufgerufen werden.
    
    	//CFont schrift;
    	//CString ABCDE ="Arial";
    
    	CPaintDC dc(this);
       
    	schrift.CreateFont(29, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("Consolas"));
    
    	CStatic *ed=(CStatic*)GetDlgItem(IDC_STATIC222);
    	ed->SetFont(&schrift);
    
    	GetDlgItem(IDC_STATIC222)->SetWindowText(_T("Ghostmode"));  
    }
    So habe ich es jetzt und Schrift ist ne public in der View Class!

    Aber ich bekomme nach dem Start eine fehler Meldung "Debug Assertion Failed..." aber ich sehe dass die Schrift richtig übernommen wurde und es anscheinend eingeschränkt funktioniert.. ich verstehe nur nicht was mir die Fehler Meldung sagen soll bzw. wodurch sie ausgelöst wird..
    Geändert von Artery (31.12.2011 um 13:57 Uhr)

  5. #5
    Administrator + Moderator
    C++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET
    Avatar von Klotzkopp
    Reg.-Datum
    10.07.2001
    Ort
    Essen
    Beiträge
    8.980

    Standard

    Zitat Zitat von Artery Beitrag anzeigen
    So habe ich es jetzt und Schrift ist ne public in der View Class!
    CreateFont in OnPaint ist keine gute Idee. Mach das im View-Konstruktor.
    Zitat Zitat von Artery Beitrag anzeigen
    Aber ich bekomme nach dem Start eine fehler Meldung "Debug Assertion Failed..." aber ich sehe dass die Schrift richtig übernommen wurde und es anscheinend eingeschränkt funktioniert.. ich verstehe nur nicht was mir die Fehler Meldung sagen soll bzw. wodurch sie ausgelöst wird..
    Da du den relevanten Teil der Meldung weggelassen hast, können wir dir auch nicht helfen. Wirf den Debugger an und schau im Callstack nach, woher die Meldung kommt.
    Geändert von Klotzkopp (31.12.2011 um 15:00 Uhr)
    "Funktioniert nicht" ist keine ausreichende Problembeschreibung.

  6. #6
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard

    Also ich habe das Ganze jetzt in "OnInitialUpdate()" gepackt und jetzt funktioniert es einwandfrei!

    So jetzt habe ich aber ein zweiten Dialog, wenn der geöffnet wird möchte ich wieder folgendes machen:

    Code:
    m_cFontButtonFont.CreateFont(8, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("Consolas"));
    	CStatic *p_cStaticEditElement=(CStatic*)GetDlgItem(IDSC_PRFLMNGRACCPTPRFLTXT);
    	p_cStaticEditElement->SetFont(&m_cFontButtonFont);
    	GetDlgItem(IDSC_PRFLMNGRACCPTPRFLTXT)->SetWindowText(_T("Ghostmode"));
    Der Dialog hat jetzt eine Klasse die von DialogEX abgeleitet ist. Darin habe ich kein "OnIntialUpdate".

    Ich weiß jetzt nicht wo ich das hinpacken soll...

    Ich habe mir einfach eine Funktion geschrieben in der das nun passieren soll.
    Ich war mir nicht ganz sicher wie ich sie aufrufen soll, also wenn ich sie nachdem Konstruktor aufrufe bekomme ich wieder nen Fehler.

    Code:
    CWnd* CWnd::GetDlgItem(int nID) const
    {
    	ASSERT(::IsWindow(m_hWnd));
    
    	if (m_pCtrlCont == NULL)
    		return CWnd::FromHandle(::GetDlgItem(m_hWnd, nID));
    	else
    		return m_pCtrlCont->GetDlgItem(nID);
    }
    in m_hWnd steht "unused = ???"
    Das scheint jetzt glaube ich das Problem zu sein, weil ich die Funktion aufrufe bevor ich:

    Code:
    if(c_ProfilmangerNewProfilWindow.DoModal() == IDOK)
    	{...
    }
    aufrufe.

    er hat iwie kein Fenster oder so hat keine ahnung...
    Nur ich wüsste auch nicht was ich machen sollte um es dazwischen zupacken. Ich weiß einfach nicht genau was .DoModal() macht nur das es iwie das Fenster aufruft... Aber ich weiß auch nicht genau wann in die if-bedingung gesprungen wird.

    Ich hoffe ihr könnt mir ihrgendwie helfen, ich bin so sehr am verzweifeln und ausrasten...

  7. #7
    Reg.-Benutzer Avatar von Hexagon
    Reg.-Datum
    30.10.2001
    Ort
    bei HH...
    Beiträge
    401

    Lachen

    Moin.
    Zitat Zitat von Artery Beitrag anzeigen
    Der Dialog hat jetzt eine Klasse die von DialogEX abgeleitet ist. Darin habe ich kein "OnIntialUpdate".

    Ich weiß jetzt nicht wo ich das hinpacken soll...
    Kleiner Tipp: "OnInitDialog()".
    Offizielles Alt-Mitglied im Club der Schokoholiker und bekennender Knipser
    "Onkel, der den Kindern nur Blödsinn beibringt"
    ------------------------------------
    Fachbegriffe der Informatik
    320: Softwarewartung
    Flags putzen, Strukturen nachrichten und Variablen mit Öl auffüllen. (Hans Bonfigt)

  8. #8
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard

    Wenn es diese Funktion in meiner Klasse geben würde, hätte ich es darein auch gepackt es gibt aber keine solche Funktion :/

  9. #9
    Reg.-Benutzer Avatar von Hexagon
    Reg.-Datum
    30.10.2001
    Ort
    bei HH...
    Beiträge
    401

    Standard

    Moin.

    Die gibt es. Entweder per KlassenAssistent erzeugen, oder per Hand einfügen.
    Offizielles Alt-Mitglied im Club der Schokoholiker und bekennender Knipser
    "Onkel, der den Kindern nur Blödsinn beibringt"
    ------------------------------------
    Fachbegriffe der Informatik
    320: Softwarewartung
    Flags putzen, Strukturen nachrichten und Variablen mit Öl auffüllen. (Hans Bonfigt)

  10. #10
    Reg.-Benutzer Avatar von Artery
    Reg.-Datum
    24.08.2010
    Ort
    Kassel
    Beiträge
    84

    Standard

    Achso ohh man, wenn man in rage ist dann vergisst man aber auch alles...
    Ja klar =) danke

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Skalierung und Auflösung von Bitmaps
    Von Rotti im Forum .NET
    Antworten: 0
    Letzter Beitrag: 13.01.2010, 11:38
  2. Steuerlemente ermitteln
    Von mwarlich im Forum Basic
    Antworten: 2
    Letzter Beitrag: 23.03.2004, 13:55
  3. Besondere Anordnung des Chefs
    Von need-some-blood im Forum Ausbildung im IT-Bereich
    Antworten: 23
    Letzter Beitrag: 30.06.2003, 17:59
  4. Bitmaps per Drag&Drop verschieben
    Von Stevie im Forum C++: Compiler, IDEs, APIs
    Antworten: 0
    Letzter Beitrag: 13.02.2003, 09:25
  5. PalmOS + Bitmaps
    Von maddin im Forum C++: Compiler, IDEs, APIs
    Antworten: 0
    Letzter Beitrag: 29.10.2001, 10:17

Die häufigsten Suchbegriffe für diese Seite:

mfc bei fensterstart öffnen