Fenster ohne Icon aber mit "X" Button

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

mit PB kann man halt keine echten dialoge erstellen.

also, ich weiß nicht, ob es überhaupt geht mit irgendeinem Bit der Flags.

aber: du könntest ein icon erzeugen, dass nur aus transparenz besteht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Dann ist aber dennoch immer ein Icon "vorhanden", bzw. der WindowText steht dann etwas merkwürdig "weit rechts" da :lol:
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

Procedure DialogBox(WinNUM.w,Width.w,Height.w,Caption.s,ParentID.l)
    DisableWindow(ParentID,1)

    dwStyle = #WS_SYSMENU | #WS_CAPTION | #WS_VISIBLE | #PB_Window_ScreenCentered

    Result = OpenWindow(WinNUM,X,Y,Width,Height,Caption,dwStyle,WindowID(ParentID))

    hMenuSystem = GetSystemMenu_(Result,0)

    RemoveMenu_(hMenuSystem,#SC_RESTORE,0)
    RemoveMenu_(hMenuSystem,#SC_SIZE,0)
    RemoveMenu_(hMenuSystem,#SC_MINIMIZE,0)
    RemoveMenu_(hMenuSystem,#SC_MAXIMIZE,0)
    RemoveMenu_(hMenuSystem,0,0)

    SetWindowLong_(Result,#GWL_EXSTYLE,#WS_EX_DLGMODALFRAME)
    
    ProcedureReturn Result
EndProcedure

Ipsum$ + "Lorem ipsum aliquam erat volutpat wisi enim ad minim veniam, quis nostrud " 
Ipsum$ + "exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo."

OpenWindow(0,0,0,320,240,"Parent Window",#WS_OVERLAPPEDWINDOW | 1)

DialogBox(101,200,120,"Dialog Test",(0))
CreateGadgetList(WindowID(101))
TextGadget(0,10,10,180,50,Ipsum$)
ButtonGadget(1,60,80,80,24,"OK",#BS_DEFPUSHBUTTON)
HideWindow(101,0)

Repeat
	EventID = WaitWindowEvent()

	If EventID = #PB_Event_Gadget And EventGadget() = 1
		DisableWindow(0,0)
		CloseWindow(101)
	EndIf
Until EventID = 16
Windows 10 Pro, 64-Bit / Outtakes | Derek
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

funktioniert unter 2K...

ist aber dochn ziemlicher aufwand...

...und ein bisschen unglücklich, dass man den click in der eventschleife außerhalb abfragt und das parent manuell enablen muss...

...eventuell alles in die proc packen dann?

ja ok, war ja nich thema, ging ja nur darum, wie man das macht ohne icon.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Du kannst aber auch 'nen Toolwindow benutzen, die Titlebar ist allerdings etwas kleiner.

Code: Alles auswählen

  Macro AddWindowStyleEX(hwnd,new_style) 
    SetWindowLong_(hwnd,-20,GetWindowLong_(hwnd,-20)|new_style)
    SetWindowPos_(hwnd,0,0,0,0,0,#SWP_FRAMECHANGED|#SWP_NOMOVE|#SWP_NOSIZE)
  EndMacro

  hwnd = OpenWindow(0,0,0,640,480,"leer")
  
  AddWindowStyleEX(hwnd,#WS_EX_TOOLWINDOW)
  
  Repeat : Until WaitWindowEvent() = 16
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja, cool @edel :allright:

...das ist der klassische dialog-frame.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

Kaeru Gaman hat geschrieben:ja, cool @edel :allright:

...das ist der klassische dialog-frame.
Das ist wohl eher ein klassisches Toolwindow, aber nicht schlecht
:wink:

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"Parent Window")
SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_DLGMODALFRAME)

;#################################
;benötigt SKINWIN-LIB
;#################################
ShowCloseButton(WindowID(0),#True)
;#################################

Repeat
   EventID = WaitWindowEvent()
Until EventID = 16
Gruss Andreas
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Andreas hat geschrieben:

Code: Alles auswählen

;benötigt SKINWIN-LIB
MÖÖÖÖP - Hoëcker, sie sind raus.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Warum das denn ?!

ersetze

Code: Alles auswählen

ShowCloseButton(WindowID(0),#True)
mit

Code: Alles auswählen

style = GetWindowLong_(WindowID(0),#GWL_STYLE)
SetWindowLong_(WindowID(0),#GWL_STYLE,style|#WS_SYSMENU)
SetWindowPos_(WindowID(0),0,0,0,0,0,#SWP_FRAMECHANGED|#SWP_NOMOVE|#SWP_NOSIZE)
Benutzeravatar
E-P-S
Beiträge: 134
Registriert: 30.03.2007 09:39
Kontaktdaten:

Beitrag von E-P-S »

Hui, klasse...vielen Dank, klappt super.
Antworten