Firmenlogo drucken



  • Morgen,

    ich hab hier eine ganz normale druckfunktion

    MoveTo()
    LineTo()
    ...
    

    funktioniert auch alles wunderbar. jetzt muss ich aber noch das Firmenlogo mitdrucken, das als Bilddatei vorliegt. Hab schon gesucht über "Logo" "Firmenlogo" aber nichts gefunden.

    Könnt ihr mir sagen, wie ich das machen muss?

    Danke schonmal



  • wenn du das per CDC meinst, mussst du das Bild in den Speicher laden und dann in den CDC blitten



  • ja, ich mache das mit CDC

    ist aber ein JPG kein BMP

    wie meinste in den speicher laden und dann blitten?



  • // ------------------------------------------------------------------------------------------------
    // Druckt das Logo
    // ------------------------------------------------------------------------------------------------
    void CMyDoc::DruckeLogo(CDC& f_dc)
    {
    	CBitmap bmp;
    	bmp.LoadBitmap(IDB_LOGO);
    
    	BITMAP bm;
    	bmp.GetBitmap(&bm);
    	CDC sdc;
    	sdc.CreateCompatibleDC(&f_dc);
    	sdc.SelectObject(&bmp);
    	const int nBreite = (int)(bm.bmWidth * 1.5);
    	const int nHoehe = (int)(bm.bmHeight * 1.5);
    	f_dc.StretchBlt(f_dc.GetWindowExt().cx - nBreite, 0, nBreite, -nHoehe, &sdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
    }
    

    Ich hoffe, das hilft dir. 🙂



  • ja, ich hab grad erstmal diverse probleme das JPG als Res hinzuzufügen

    irgendwie macht der das nicht

    ich gehe ganz normal auf "vorhandeses element hinzufügen" wähle das JPG Logo aus und auf einfügen

    aber da kommt nüx *gg*



  • Drei Möglichkeiten:

    - Aus dem JPG ein BMP machen
    - GDI+ benutzen
    - Eine Bibliothek für JPG benutzen



  • Unter Resourcen-Ansicht -> Resource hinzufügen. Dann auf importieren.
    Sollte klappen. 😉

    EDIT: Ok, vielleicht irre ich mich auch. 😞
    EDIT2: estartu_de hat vielleicht die einfachere Lösung eben genannt. 🤡



  • Ich habe da oben einfach ein Bmp genommen. Man kann es ja konvertieren. 😉



  • auch wenn ich das JPG als BMP mache und über Rescource und importieren mache kommt da leider nüx

    soll ich einfach leeres BMP erstellen und unter eigenschaften den neuen Dateipfad eingeben?



  • MSS-Software schrieb:

    auch wenn ich das JPG als BMP mache und über Rescource und importieren mache kommt da leider nüx

    Was gibt LoadBitmap zurück?
    Was gibt CreateCompatibleDC zurück?
    Was gibt StretchBlt zurück?



  • ehm

    da bin ich nocht gar nicht

    ich bekomme es ja gar nicht erst in die entwicklungsumgebung rein



  • Wie "machst" du denn das "JPG als BMP"? Du hast doch hoffentlich nicht nur den Dateinamen geändert?



  • oder darf das BMP nur eine bestimmte max größe haben?

    kann ich mir aber eigentlich nicht vorstellen, oder?



  • Wie groß ist das Ding denn (in Pixel)?
    Der Ressourceneditor von VC6 kann AFAIK Bitmaps mit mehr als 16 Bit Farbtiefe nicht anzeigen. Im Programm sollte es aber trotzdem funktionieren.



  • ach, alles klar

    hab es drin

    hab nicht dran gedacht, dass das JPG ja ein komprimiertes format ist

    sorry

    geh dann jetzt annen sourcecode



  • jo, funzt wunderbar

    ich danke euch und sorry nochmal wegen der Dateiumbenennung



  • aber da fällt mir grad nochwas ein

    was mache ich denn jetzt, wenn sich das Logo ändert? Firmenzusammenlegung etc

    dann müsste ich das ja neu compilieren, weil ich das ja jetzt statisch gemacht habe

    gibts da noch ne dynamische möglichkeit?



  • Du kannst das Bild auch zur Laufzeit aus einer Datei laden -> http://www.c-plusplus.net/forum/viewtopic-var-t-is-125650

    Aber ist das wirklich etwas, worum du dir Sorgen machen solltest?



  • nö, eigentlich kann es mir auch egal sein *ggg*

    aber du weißt doch: Benutzerfreundlichkeit :->

    danke dir



  • irgendwie bekomme ich das mit dem Rückgabewert nicht ganz hin

    hab die gesamte funktion jetzt so:

    CBitmap bmp;  
    HBITMAP hBitmap;     
    hBitmap =(HBITMAP)::LoadImage(NULL,"c:\\loglo\\Logo.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); 
    bmp = bmp.FromHandle(hBitmap); 
    
    //bmp.LoadBitmap(IDB_WIRA); 
    BITMAP bm; 
    bmp.GetBitmap(&bm); 
    CDC sdc; 
    sdc.CreateCompatibleDC(&pDC); 
    sdc.SelectObject(&bmp); 
    const int nBreite = (int)(bm.bmWidth * 1.5); 
    const int nHoehe = (int)(bm.bmHeight * 1.5); 
    pDC.StretchBlt(pDC.GetWindowExt().cx - nBreite, 0, nBreite, -nHoehe, &sdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
    

    in dieser zeile ist der fehler

    verstehen tu ich es aber nicht

    ist doch von CBitmap

    bmp = bmp.FromHandle(hBitmap);
    

Log in to reply