Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Firefly

Alter Hase

  • »Firefly« ist der Autor dieses Themas

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

1

03.07.2006, 15:12

WINAPI-Fensterstile

Hi Leute,
wisst ihr eigentlich wie man neue fenster-styles(ich mein jetzt nicht die ws_ blabla-flages sondern fenster vom aussehen her) entwickelt?
BZW. wo es dazu tuts gibt? :?:

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

2

03.07.2006, 15:39

Mit WindowsForms im VC++ 2005 kannst du den Fensterrahmen und alles weglassen, dann ein Hintergrundbild setzten und dafür einen Alpha-Key angeben. So kannst du beliebige Fenster-Formen machen. Ob das der eleganteste Weg ist weiss ich aber nicht...
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Anonymous

unregistriert

3

03.07.2006, 15:47

big_muff
Kann ich mit WinAPI auch. Dafür brauche ich kein .NET.

Firefly
Was hast Du denn genau vor? WS_ kann man nicht selber entwickeln, nur mit vorhandenen Kombinieren. Bei WM_ sieht das anders aus.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

03.07.2006, 16:01

Alpha Keys mit der WinAPI? Geil =) Ich glaub in Zukunft schreib ich bei allen kleinen Funktionen die mir fehlen Patrick ne PM und frag ihn obs dafür was in der WinAPI gibt *gg*

Edit:
"Alpha Key? Da gibts doch auch was von Microsoft?" "Microsoft?" "Geile API!" "Viel Erfolg noch." (Oke, man muss die Werbung kennen xD)

Anonymous

unregistriert

5

03.07.2006, 16:07

Das Gurke
Na ja, mit den meisten Codes von mir verdiene ich ja meine Brötchen ;) Aber es gibt auch ein paar die ich for free Rausrücke :D

Aber Fenstertransparenz und Dreieckige/Runde/Mehreckige/Geformete Fenster gibt es auch unter WinAPI ;)

6

03.07.2006, 16:43

Jop... Regions würden dir ein Window mit komischer Form ermöglichen ;) und fürs andere gibt es sogar genau 1 Funktion ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

7

03.07.2006, 17:03

So hier mal ein Code um einem Fenster eine Transparenz zu geben. Prozentangabe als Parameter und das Teil läuft ;)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    // Prototyp für den Funktionspointer auf 'SetLayeredWindowAttributes'.

typedef int (__stdcall * SLWA) (::HWND__* hwnd, unsigned long key, unsigned char alpha, unsigned long flag);

// ///////////////////////////////////////////////////////////////////////////

// PUBLIC

// 

// Setzt dem Fenster einen Transparenzwert (Alphablending) zwischen 0 und 100.

// ACHTUNG: Nur lauffähig auf Systemen von NT4 aufwärts.

// ///////////////////////////////////////////////////////////////////////////

bool IWindow::set_alpha (unsigned long percent)
{
        // Bei 100 Prozent den Stil '0x00080000' für das Blending entfernen.

    if (percent >= 100)
    {
            // Stil '0x00080000' entfernen

        if (::SetWindowLongW (hwnd_, GWL_EXSTYLE, ::GetWindowLongW (hwnd_, GWL_EXSTYLE) & ~0x00080000) != 0) 
            return (false);
        
            // Fenster und Kinder auffordern sich neu zu zeichnen.

        return (::RedrawWindow (hwnd_, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN) != 0);
    }

 
        // Funktionspointer für die Funktion 'SetLayeredWindowAttributes' bereitstellen

        // und Zeiger auf das Modul 'user32.dll"' beschaffen

    ::SLWA          set_layered_window_attributes   = NULL;
    ::HINSTANCE__*  module                          = ::GetModuleHandleW (L"USER32.DLL");

        // Prüfen ob das Modul geladen werden konnte

    if (!module)
        return (false);

        // 'SetLayeredWindowAttributes' aus dem Modul 'user32.dll' entnehmen und auf Funktionspointer legen.

    if (!(set_layered_window_attributes = reinterpret_cast<::SLWA>(::GetProcAddress (module, static_cast<char*>("SetLayeredWindowAttributes")))))
        return (false);
    
        // Stil '0x00080000' setzen.

    ::SetWindowLongW (hwnd_, GWL_EXSTYLE, ::GetWindowLongW (hwnd_, GWL_EXSTYLE) | 0x00080000);

        // Alphablending setzen.

    return (set_layered_window_attributes (hwnd_, 0, static_cast<unsigned char>(percent * 255 / 100), 0x00000002) != 0);
}

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

03.07.2006, 17:41

"Gibts da auch was von Ratiopharm"
=>
"Gibts den da auch was in der WinAPI"

@Patrick... schon kla ;)

Anonymous

unregistriert

9

03.07.2006, 17:46

Wie schon gesagt, mit der WinAPI kann man sogesehen alles machen, da Windows darauf aufbaut. Jedes Windowsprogramm greift auf die WinAPI zurück, selbst .NET. ;)

Firefly

Alter Hase

  • »Firefly« ist der Autor dieses Themas

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

10

04.07.2006, 12:22

na ja, es geht mir eigentlich darum fenster zu programmieren, die z.b. so wie icq aussehen.
Es soll also das Fensterlayout verändert werden.
Wie geht sowas?

Werbeanzeige