Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » GetLayeredWindowAttributes

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
23.09.2004, 12:34 Uhr
~Peter1
Gast


Wie der Titel meines Beitrags schon sagt habe ich ein Problem mit der Funktion GetLayeredWindowAttributes. Es klappt alles wunderbar, sie gibt mir auch den Wert der aktuellen Transparenz meines Fensters. Aber sobald ich das Fenster in der Groesse aendere bekomme ich immer 205 als den Wert der Transparenz. Weiss jemand was man beachten muss wenn man ein Fenster in der Groesse aendert, damit trotzdem der richtige Transparenzwert rauskommt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.09.2004, 13:00 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
255 oder 205?
205 kann ich mir nicht erklären ...

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.09.2004, 13:02 Uhr
~Peter1
Gast


Eben 205, das ist ja das Problem. Allerdings nur wenn ich das Fenster mit der Funktion SetWindowPos in der Groesse aendere! Davor klappt es wie gewollt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.09.2004, 13:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Wenn du zuvor SetLayeredWindowAttributes richtig aufgerufen hast sollte es gehen.
SetWindowPos übernimmt einige Flags - evntl. hast du eines vergessen / zuviel hinzugefügt. Die können auch das Style des Windows beeinflussen ...
Sorry bin da mom. auch überfragt
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.09.2004, 13:14 Uhr
~Peter1
Gast


Ich werde mal weitersuchen, vielleicht finde ich ja eine Loesung. Werde sie dann hier posten! Falls noch jemand eine Ideen hat....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.09.2004, 13:17 Uhr
mike
Pinguinhüpfer
(Operator)


Kannst du mal bidde den Code für SetWindowPos und evntl. SetLayeredWindowAttributes posten?
mile grazie
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.09.2004, 13:28 Uhr
~Talkabout
Gast



C++:
// Vergroessert das Fenster nach unten hin
this->SetWindowPos(this, 0, 0, rect.right-rect.left, 340, SWP_NOMOVE|SWP_NOZORDER);

// Transparenzfunktion
BOOL MakeWindowTransparent(HWND hWnd, int percent){
if(!m_hDLL){
        m_hDLL = GetModuleHandle("user32");
        if(!m_hDLL)
            return FALSE;

        pSetLayeredWindowAttributes =
             (PSLWA) GetProcAddress(m_hDLL, "SetLayeredWindowAttributes");
    }

    if (pSetLayeredWindowAttributes == NULL){
        return FALSE;
    }

   SetWindowLong(hWnd,
                 GWL_EXSTYLE ,
                 GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);

   if (GetLastError())
        return FALSE;

   /* Now, we need to set the 'layered window attributes'. This
    * is where the alpha values get set. */

    int result = pSetLayeredWindowAttributes (hWnd,
                                       RGB(255,255,255),
                                       (int)(percent*2.55),
                                       LWA_ALPHA);
    return result;
}


Dieser Post wurde am 23.09.2004 um 15:46 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.09.2004, 13:36 Uhr
~Peter1
Gast


Das darueber war uebrigens auch ich, falscher Benutzername
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.09.2004, 15:48 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Und wenn du händisch das Fenster größer ziehst bleibt die Transparenz erhalten?
Ansonsten schaut der Code imo richtig aus - this kannst du vor SetWindowPos normalerweise weglassen
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.09.2004, 16:21 Uhr
~Talkabout
Gast


Die Transparenz bleibt erhalten, ich kann sie auch wieder setzen, aber ich bekomme den richtigen Transparenzwert nicht zurueck aus der Funktion GetLayeredWindowAttributes. Sonst klappt ja alles.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: