Startscreen von Adobe-Produkten ...



  • dEUs schrieb:

    Klar. Du machst nen Screenshot in der Größe des BoundingRect deines gesamten Splashscreens (also inklusive der Kurven, die über das eigentliche Bild rausgehen), den blittest du auf deinen Splashscrenn und renderst dann noch darüber das eigentliche Splashscreenbild + Kurven.

    Das würde bedeuten, dass du immer dann einen neuen Screenshot machen musst, wenn sich ein anderes fenster hinter dem Splashscreen bewegt. Sind wir realistisch, das ist nicht der Fall. Das ist einfach nur ein ganz primitives Window Skinning. Siehe dazu auch ... http://www.flipcode.com/articles/article_win32skins.shtml



  • lol. Hast du es schonmal ausprobiert? Das ist ja grad das lustige daran: der Hintergrund ändert sich nicht, auch wenn sich die Hintergrundapplikation ändert!



  • dEUs schrieb:

    lol. Hast du es schonmal ausprobiert? Das ist ja grad das lustige daran: der Hintergrund ändert sich nicht, auch wenn sich die Hintergrundapplikation ändert!

    Hab mir das aus irgendeinem grund aber gerade bei den GFXler angesehen. Würde mich doch verwundern, wenn das bei denen funktioniert und bei dir nicht. Aber naja, gut, für ne Up-To-Date Version fehlt natürlich wieder das Geld ^^



  • Muss ich wegen dir jetzt Adobe Reader 6 runterladen und installieren?
    Was hast du dir bei welchen GFXlern angesehen?
    Dass es auch mit Window Skinning möglich ist, bestreitet niemand, aber hier war die Frage danach, wie die Adobe-Produkte das machen. Und die machen das nun einmal mit nem Screenshot.



  • Hab den Thread nicht durchgelesen aber nach den Screenshots sieht mir das so als wenn da Window Regions benutzt worden sind.
    Auf http://www.webfritzi.de.vu/ gibts ein programm zum erstellen solcher Regions aus Bildern.



  • dEUs schrieb:

    Muss ich wegen dir jetzt Adobe Reader 6 runterladen und installieren?

    Was willste mit dem Reader ?

    dEUs schrieb:

    Dass es auch mit Window Skinning möglich ist, bestreitet niemand, aber hier war die Frage danach, wie die Adobe-Produkte das machen. Und die machen das nun einmal mit nem Screenshot.

    Sah bei dem Photoshop von vorhin irgendwie nicht so aus.



  • [ none] schrieb:

    dEUs schrieb:

    Muss ich wegen dir jetzt Adobe Reader 6 runterladen und installieren?

    Was willste mit dem Reader ?

    Der Reader ist von Adobe?? Und er hat genau diesen Startbildschirm auf den sich der Threadersteller bezieht.



  • dEUs schrieb:

    [ none] schrieb:

    dEUs schrieb:

    Muss ich wegen dir jetzt Adobe Reader 6 runterladen und installieren?

    Was willste mit dem Reader ?

    Der Reader ist von Adobe?? Und er hat genau diesen Startbildschirm auf den sich der Threadersteller bezieht.

    Und weil er von Adobe ist hat natürlich jedes Adobe Prog den selben Startup Screen. Was für eine krasse Logik 🙄



  • [ none] schrieb:

    dEUs schrieb:

    [ none] schrieb:

    dEUs schrieb:

    Muss ich wegen dir jetzt Adobe Reader 6 runterladen und installieren?

    Was willste mit dem Reader ?

    Der Reader ist von Adobe?? Und er hat genau diesen Startbildschirm auf den sich der Threadersteller bezieht.

    Und weil er von Adobe ist hat natürlich jedes Adobe Prog den selben Startup Screen. Was für eine krasse Logik 🙄

    Was willst du eigentlich? 😕
    Machst mich hier den ganzen Thread lang schon blöd an. Langsam is gut. 👎



  • Ich erkläre dir nun gerne nochmal, dass es vllt. bei dem Reader mit dem Screenshot funktioniert. Bei Photoshop kannst du aber die Fenster im Hintergrund verschieben. Du solltest also nicht von einem prog auf alle anderen verallgemeinern. ich würde erwarten, dass du es nun endlich begriffen hast. Ansonsten würde ich wirklich noch ernsthafter an dir zweifeln.

    btw. Lass mich raten, dass mit Photoshop haste überlesen ? 😮
    oder warum bist du so geil auf den Reader ?



  • Das selbe scheinst du ja acuh zu tun.
    Ich bin hier raus, keine Lust mehr... 👎



  • Mit den normalen Windows Regions geht das nicht, weil die keine Transparenz zwischen 0 und 1 können. Die haben scharfe Ecken - also entweder ganz durchsichtig oder gar nicht.

    Es gibt zwei Möglichkeiten: entweder Screenshot und dann dein eigenes Zeug drüberpappen. Das geht in jedem Windows. Der Hintergrund ändert sich dann an den betroffenen Stellen nicht, wenn man Fenster im Hintergrund verschiebt.

    Oder du verwendest layered Windows. Die gibt es erst seit Win 2000. Dann kann man auch den Hintergrund verschieben, und alles schaut so aus, wie es soll.



  • Okay, also ich hab mich nun für die SplashScreen-Variante von Codeproject entschieden:

    http://www.codeproject.com/miscctrl/ABasuSplash.asp

    Wie hier auch schon oft diskutiert, sind die Übergänge zwischen Splash und Hintergrund aber hart. Um diese "weich" machen zu können, habe ich die Übergangsbereiche in einem separaten Bitmap gespeichert. Dieses Bitmap ist Blau (0,0,255) und besitzt die weichen weißen Übergänge.

    Nun hatte ich vor, mit diesem Sourcecode hier:

    CBitmap bitmap;   
        bitmap.CreateBitmap( 100, 900, 1,24, NULL );   
        CDC MemDC;   
        CDC* pDC = GetDC();   
        MemDC.CreateCompatibleDC( pDC );   
        MemDC.SelectObject(bitmap);   
        MemDC.MoveTo(10,100); // x und y Koordinaten oder ?? 
        MemDC.LineTo(10,100); //dito x,y ?? wozu ist dann BitBlt ?? 
        pDC->SelectObject(bitmap); 
        pDC->BitBlt(0,0,900,100, &MemDC, 0,0, SRCCOPY); 
    
        DC2Bitmap(pDC->m_hDC,1024,768,"c:\\testbild.bmp"); //ok is klar Größe der ganzen Bilddatei angeben
    

    (Den Sourcecode habe ich übrigens aus diesem Thread: http://www.c-plusplus.net/forum/viewtopic.php?t=89890&highlight=dc2bitmap)

    ... einen Screenshot von dem Desktop zu erzeugen, den interessierenden Bereich "auszuschneiden" und mit meinem weichen-Übergangsbitmap logisch UND zu verknüpfen, wobei Blau (0,0,255) jedoch als transparente Farbe nicht betrachtet wird.

    Soweit die Planung, nun das Problem:
    Wenn ich den oben stehenden Sourcecode in mein Projekt einbinde, das praktisch nur aus dem Splashscreen-Sourcecode von Codeproject stammt, dann bekomme ich die folgende Fehlermeldung:

    c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\afxv_w32.h(18): fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
    

    Grund hierfür ist die notwendige Einbindung von

    afxwin.h
    

    ohne das CBitmap sonst nicht verarbeitet werden könnte. Leider hab ich jetzt irgendwie die Übersicht verloren, aus welchem meiner files ich jetzt

    windows.h
    

    rausnehmen soll. Mein Multiple-Choice-Versuch war leider nur wenig erfolgreich ... und neu schreiben kann man die Bitmapklassen ja nun auch nicht ... naja, nicht unbedingt, wenn es auch einfacher geht.

    Kennt jemand das Problem und kann mir helfen ?



  • schmeiss den afxwin-include raus und setze den include der splashscreenheaderdatei unter den include von stdafx.h. Dann sollte es eigentlich tun.



  • Das funktioniert nicht, ohne afxwin.h hab ich 30 Fehlermeldungen. Alle hängen damit zusammen, dass der CBitmap und davon abgeleitete Parameter nicht erkennt ...

    Hier der Anfang der SplashClient.cpp-Datei:

    //  ===========================================================================
    //  File    SplashClient.cpp
    //  Desc    Test stub for the CSplash class
    //  ===========================================================================
    #include "stdafx.h"
    #include "splash.h"
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
    	CBitmap bitmap;   
        bitmap.CreateBitmap( 100, 900, 1,24, NULL );   
        CDC MemDC;   
        CDC* pDC = GetDC();   
        MemDC.CreateCompatibleDC( pDC );   
        MemDC.SelectObject(bitmap);   
        MemDC.MoveTo(10,100); // x und y Koordinaten oder ?? 
        MemDC.LineTo(10,100); //dito x,y ?? wozu ist dann BitBlt ?? 
        pDC->SelectObject(bitmap); 
        pDC->BitBlt(0,0,900,100, &MemDC, 0,0, SRCCOPY); 
    
        DC2Bitmap(pDC->m_hDC,1024,768,"c:\\testbild.bmp"); //ok is klar Größe der ganzen Bilddatei angeben
    


  • hm, dann versuch mal, ob es klappt, wenn du in die sourcecodedatei des splashscreens die stdafx.h includierst.



  • Okay, das habe ich jetzt gemacht und es funktioniert. Vielen dank. Nun ist aber leider gleich das nächste Problem aufgetreten ... GetDC() will mein Compiler nicht haben, weil er meint, dass er ein Argument übergeben haben will. Das ist ein Handle ...

    Suche ich auf MSDN nach GetDC bekomme ich nicht wirklich viel Infos:

    *Retrieves the device context that currently has the image selected into it.

    HDC GetDC( ) const throw( );
    Return Value
    A handle to a device context.

    Remarks
    For each call to GetDC, you must have a subsequent call to ReleaseDC.*

    Außerdem wird da HDC und nicht CDC verwendet ...



  • [ none] schrieb:

    Ich erkläre dir nun gerne nochmal, dass es vllt. bei dem Reader mit dem Screenshot funktioniert. Bei Photoshop kannst du aber die Fenster im Hintergrund verschieben. Du solltest also nicht von einem prog auf alle anderen verallgemeinern. ich würde erwarten, dass du es nun endlich begriffen hast. Ansonsten würde ich wirklich noch ernsthafter an dir zweifeln.

    btw. Lass mich raten, dass mit Photoshop haste überlesen ? 😮
    oder warum bist du so geil auf den Reader ?

    hey du ei, die fenster von PS erscheinen erst, wenn der Splashscreen verschwunden ist. Bevor man einen auf klugscheißer macht, sollte man wissen wovon man redet



  • könnt ihr euren persönlichen Streit bitte über diese netten privaten Nachrichten verschicken? Wäre echt super, weil sonst der Zusammenhang dieses Themas total verlorengeht.

    THX



  • Er will ein Handle auf ein Fenster (ein HWND).


Anmelden zum Antworten