Seite 2 von 4
Verfasst: 31.03.2007 13:27
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...
Verfasst: 31.03.2007 13:29
von Jilocasin
Dann ist aber dennoch immer ein Icon "vorhanden", bzw. der WindowText steht dann etwas merkwürdig "weit rechts" da

Verfasst: 31.03.2007 15:46
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
Verfasst: 31.03.2007 15:53
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.
Verfasst: 31.03.2007 15:57
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
Verfasst: 31.03.2007 16:08
von Kaeru Gaman
ja, cool @edel
...das ist der klassische dialog-frame.
Verfasst: 31.03.2007 16:31
von Andreas
Kaeru Gaman hat geschrieben:ja, cool @edel
...das ist der klassische dialog-frame.
Das ist wohl eher ein klassisches Toolwindow, aber nicht schlecht
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
Verfasst: 31.03.2007 16:34
von Kaeru Gaman
MÖÖÖÖP - Hoëcker, sie sind raus.
Verfasst: 31.03.2007 16:44
von edel
Warum das denn ?!
ersetze
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)
Verfasst: 31.03.2007 17:03
von E-P-S
Hui, klasse...vielen Dank, klappt super.