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