Seite 1 von 1

API für Fenster

Verfasst: 01.12.2008 02:26
von KatSeiko
Gibt es irgendwo eine Liste mit API-Befehlen? Ich suche speziell solche, die für Fenster wichtig sind. Leider bin ich über die Forum-suche nicht fündig geworden (oder hab die falschen Begriffe verwendet)...

__________________________________________________
Thread verschoben
Anfänger>APIs
02.12.2008
RSBasic

Verfasst: 01.12.2008 03:05
von STARGÅTE
Also

Hier im Forum gibs ein Forumbereich der nennt sich API, dort findest du sogar ein Thema welche WICHTIG ist.
Die suche nach "Window+API" enthält auch den Link zu diesem Wichtigen Thema: Wichtig: WinAPI Library (Snippets) (172)

Dort findest du einen sehr guten LINK über API und auch sepiell für Fenster ...
WinAPI Library - OpenWindow

Ich denke dort findest du alles was du brauchst ...

Verfasst: 01.12.2008 03:29
von KatSeiko
Genau sowas wie Deinen zweiten Link hab ich gesucht! :allright:

Ich frag mich nur, warum ich das nicht früher gefunden habe. Nur leider fehlen dabei drei wichtige Dinge... :(

Verfasst: 01.12.2008 20:59
von Fluid Byte

Verfasst: 02.12.2008 08:09
von KatSeiko
Tja, mit C hab ich's nicht so besonders (obwohl ich jahrelang PHP geschrieben hab)... Wo finde ich denn, wie ich ein Fenster randlos machen kann?

Verfasst: 02.12.2008 14:10
von RSBasic
@KatSeiko
Meinst du wie #PB_Window_BorderLess, nur bei einem fremden Fenster?

Code: Alles auswählen

RunProgram("notepad.exe","","",0)
Delay(100)
Handle = FindWindow_(0,"Unbenannt - Editor")
If Handle
  SetWindowLong_(Handle,#GWL_STYLE,GetWindowLong_(Handle,#GWL_STYLE)&~#WS_THICKFRAME)
  SetWindowLong_(Handle,#GWL_STYLE,GetWindowLong_(Handle,#GWL_STYLE)&~#WS_DLGFRAME)
EndIf

Verfasst: 02.12.2008 15:20
von KatSeiko
Japp, das passt... :allright:

Wo Du grad dran bist... Wie lasse ich denn den Taskbar-Eintrag für Editor-Fenster im Beispiel blinken?

Verfasst: 02.12.2008 15:43
von RSBasic
http://www.rsbasic.i3h.de/index.php?opt ... &Itemid=59

Code: Alles auswählen

If OpenWindow(0,0,0,500,250,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  FlashWindow_(WindowID(0),1)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Oder: http://www.purebasic.fr/german/viewtopic.php?t=1650

\\Edit:
Bzw. so:

Code: Alles auswählen

RunProgram("notepad.exe","","",0)
Delay(100)
Handle = FindWindow_(0,"Unbenannt - Editor")
If Handle
  SetWindowLong_(Handle,#GWL_STYLE,GetWindowLong_(Handle,#GWL_STYLE)&~#WS_THICKFRAME)
  SetWindowLong_(Handle,#GWL_STYLE,GetWindowLong_(Handle,#GWL_STYLE)&~#WS_DLGFRAME)
EndIf
FlashWindow_(Handle,1)
Delay(2000)
FlashWindow_(Handle,1)
Delay(2000)
FlashWindow_(Handle,1)

Verfasst: 02.12.2008 18:31
von KatSeiko
Umm... Hilfe!

In meinem Programm hab ich jetzt folgenden Code stehen:

Code: Alles auswählen

SetWindowLong_(hWnd,#GWL_STYLE,GetWindowLong_(hWnd,#GWL_STYLE)&~#WS_THICKFRAME)
SetWindowLong_(hWnd,#GWL_STYLE,GetWindowLong_(hWnd,#GWL_STYLE)&~#WS_DLGFRAME)
SetWindowPos_(hWnd, 0, 0, 0, 0, 0, #SWP_NOSIZE|#SWP_NOZORDER)
Das hat aber zur Folge, dass die Mauseingaben im Programm weiterhin so passieren, als ob das Fenster an der alten Position stehen. Wie teile ich dem Programm mit, dass sein Fenster verschoben wurde?