Window mit kleinem Rand

Anfängerfragen zum Programmieren mit PureBasic.
DW

Window mit kleinem Rand

Beitrag von DW »

Hallo, wie kann ich meinem window einen kleinen Rand verpassen, also so wie diese toolwindows beim Visual Designer? Hat da Purebasic was oder muss ich das selber über die WinAPI machen?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Window mit kleinem Rand

Beitrag von Kiffi »

> Hallo, wie kann ich meinem window einen kleinen Rand verpassen, also so
> wie diese toolwindows beim Visual Designer?

Dafür kannst Du MakeToolWindow() aus den PBOSL verwenden.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Hallo, wie kann ich meinem window einen kleinen Rand verpassen, also so wie diese toolwindows beim Visual Designer? Hat da Purebasic was oder muss ich das selber über die WinAPI machen?
Geht nur mit API:

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"untitled",#WS_SYSMENU | #WS_VISIBLE | 1)

SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)

HideWindow(0,0)

While WaitWindowEvent() ! 16 : Wend
DW

Beitrag von DW »

Jap. Danke!


Was gibt es denn noch so für Windowarten bei Windows(Außer jetzt ohne Rand)?


Edit: Ich habe das jetzt in eine proceduredll gepackt, jedoch schließt sich das Fenster nach dem Öffnen sofort wieder und ich kann damit nicht arbeiten.
Ist das irgendwie zu regeln?
Benutzeravatar
Darky
Beiträge: 210
Registriert: 18.09.2004 20:53
Wohnort: Gelsenkirchen / NRW
Kontaktdaten:

Beitrag von Darky »

Wahrscheinlich hast du die Fensterschleife vergessen :)


Code: Alles auswählen

while waitwindowevent()<>#wm_close 

wend


Gruß Darky :)[/code]
DW

Beitrag von DW »

Ne eben nicht. Das ist die Hauptschleife. Dieses Waitwindowevent stoppt nur die Ausführung des Programms, bis ein ereignes auf dem Fenster auftritt.
Habe ich natürlich nicht vergessen.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Poste mal den kompletten code in deiner DLL Prozedur sonst kann ich dir kaum helfen. Oder zumindest den Teil wovon du glaubst das er der Auslöser des Problems ist.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

so funks bei mir:

als Shared DLL (compiler-options) namens my.dll compilieren

Code: Alles auswählen

ProcedureDLL foo()
  OpenWindow(0,0,0,400,300,"untitled",#WS_SYSMENU | #WS_VISIBLE | 1)
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
  HideWindow(0,0)
  While WaitWindowEvent() ! 16 : Wend
EndProcedure

und mit so'nem code benutzen; my.dll im selben verzeichnis

Code: Alles auswählen

If OpenLibrary(0, "my.dll")
  CallFunction(0, "foo")
  CloseLibrary(0)
EndIf
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten