Transparentz funtzt nicht



  • Hi!
    Ich habe überall schon gesucht. Aber das funtzt einfach nicht.
    Wisst ihr warum ?. Ich habe einen Weißen Hintergrund.

    SetBkMode(::GetDC( GetDlgItem( VIEW_2 )->m_hWnd ), TRANSPARENT );
        SetBkColor(::GetDC( GetDlgItem( VIEW_2 )->m_hWnd ), TRANSPARENT );
    
        char buf[100];
        strcpy( buf, "Top" );
        TextOut( ::GetDC( GetDlgItem( VIEW_1 )->m_hWnd ), 0, 0, buf, strlen(buf) );
        strcpy( buf, "Front" );
        TextOut( ::GetDC( GetDlgItem( VIEW_2 )->m_hWnd ), 0, 0, buf, strlen(buf) );
        strcpy( buf, "Left" );
        TextOut( ::GetDC( GetDlgItem( VIEW_3 )->m_hWnd ), 0, 0, buf, strlen(buf) );
        strcpy( buf, "Perspective" );
        TextOut( ::GetDC( GetDlgItem( VIEW_4 )->m_hWnd ), 0, 0, buf, strlen(buf) );
    

    😕 Danke Bye



  • Versuch es mal so:

    char *pText[4];
    pText[0]="Top";
    pText[1]="Front";
    pText[2]="Left";
    pText[3]="Perspective";
    HDC hdc;
    for(int i=0; i<4; i++){
        hdc=GetDC(GetDlgItem( VIEW_1 + i )->m_hWnd);
        SetBkMode(hdc, TRANSPARENT );
        TextOut(hdc, 0, 0, pText[i], strlen(pText[i]) );
        ReleaseDC(GetDlgItem( VIEW_1 + i )->m_hWnd, hdc);
    [edit]}[/edit]
    

    die häufigen GetDC-Aufrufe verursachen übrigens Speicherlöscher, wenn du ReleaseDC nicht aufrufst!

    [ Dieser Beitrag wurde am 10.03.2003 um 15:54 Uhr von D@niel $chumann editiert. ]



  • Hi!
    Danke. Es Geht !
    Aber bitte kann mir einer Sagen warum das vorher nicht ging ?

    Bye



  • Es hat nicht funktioniert, weil jedes Fenster seinen eigenen DC besitzt. Wenn Du nun beim DC des 2.Fensters (VIEW_2) Transparenz setzt,
    [cpp]
    SetBkMode(::GetDC( GetDlgItem( VIEW_2 )->m_hWnd ), TRANSPARENT );
    SetBkColor(::GetDC( GetDlgItem( VIEW_2 )->m_hWnd ), TRANSPARENT );[/cpp]

    gilt dieses nicht für die DCs der anderen Fenster (VIEW_1 bis VIEW_3), die Du hier verwendest.

    TextOut( ::GetDC( GetDlgItem( VIEW_1 )->m_hWnd ), 0, 0, buf, strlen(buf) );
        strcpy( buf, "Front" );
    ...
    

    Dehalb funktioniert es mit der Schleife wie Daniel es zeigt. Es wird für jeden DC die Transparent gesetzt.



  • @Daniel: *lol* Du meintest wohl Speicherlöcher. 😉



  • [ Dieser Beitrag wurde am 11.03.2003 um 15:32 Uhr von flenders editiert. ]



  • Beschimpfen könnt ihr mich soviel ihr wollt! Ist vielleicht sogar mal witzig. Aber bitte mit Stil! 😉 Das Kopieren oder Verändern des Nicks ist jedoch ziemlich stillos, unkreativ und dummdreist. Sucht euch was anderes aus, um mich zu beleidigen.



  • Bitte haltet doch Niveau


Anmelden zum Antworten