Seite 2 von 2

Verfasst: 05.01.2007 20:34
von #NULL
:lol: ..hab ich doch gewußt das sowas kommt, nach dem ich mir 'nen ast getippt hab. :mrgreen:

Verfasst: 05.01.2007 22:21
von DarkSoul
sorry #NULL, aber hab mich für den kurzen code entschieden :twisted:

mir nicht böse sein! :wink:

ihr habt mir super geholfen, danke! :allright:

ach übrigends: AND51: die konstanten sind nicht wie feuer und wasser, denn nur zusammen funktionierts! feuer und wasser funktioniert funktioneirt zusammen nicht (gut) :wink:

Verfasst: 05.01.2007 22:26
von a14xerus
Biedermeier hat geschrieben: ach übrigends: AND51: die konstanten sind nicht wie feuer und wasser, denn nur zusammen funktionierts! feuer und wasser funktioniert funktioneirt zusammen nicht (gut) :wink:
AND51 hat schon recht, die beiden die er meinte funktioniern zusammen nicht
solange man die #PB_Window_BorderLess da hat, funktioniert #PB_Window_ResizeGadget nicht, #WS_SIZEBOX anscheinend schon :wink:

Verfasst: 05.01.2007 22:40
von AND51
Ja, ich wollte damit sagen, dass ich in PB ohne weiteres kein rahmenloses fenster (borderless) erstellen kann, und möchte, das man es in seiner größe verändern kann (resize).

#WS_SizeBOX kannte ich auch noch nicht, wenn's geht, ok. Aber mit dem PB-Konstanten, da habe ich schon Recht.

Verfasst: 06.01.2007 07:57
von #NULL
Biedermeier hat geschrieben:..hab mich für den kurzen code entschieden :twisted:
ist ja mehr als verständlich.
jetzt muß nur noch jemand zeigen, wie man mit wenig code eine minimale fenster-breite und -höhe und die breite des anfass-randes festlegen kann, um damit meinen code zu beerdigen. (da gibts doch bestimmt was)

<edit>
kann mir mal jemand sagen wieso SetCursor_(hCursor) sich nicht dauerhaft auswirkt? nach neuen events wird der ursprüngliche cursor immer wieder hergestellt.

Verfasst: 06.01.2007 12:13
von Andreas
#NULL hat geschrieben: jetzt muß nur noch jemand zeigen, wie man mit wenig code eine minimale fenster-breite und -höhe und die breite des anfass-randes festlegen kann, um damit meinen code zu beerdigen. (da gibts doch bestimmt was)
Bitte sehr.

Code: Alles auswählen

Procedure HitTest(hCtl,lParam)
    Protected pt.POINT
    Protected rc.RECT
    pt\x = LoWord(lParam)
    pt\y = HiWord(lParam)
    ScreenToClient_(hCtl,pt)
    GetWindowRect_(hCtl,rc)
    If pt\y < 4 And pt\x < 4
        Result = #HTTOPLEFT
    ElseIf pt\y < 4 And pt\x >= (rc\right-rc\left-4)
        Result = #HTTOPRIGHT
    ElseIf pt\y >=(rc\bottom-rc\top-4) And pt\x >= (rc\right-rc\left-4)
        Result = #HTBOTTOMRIGHT
    ElseIf pt\x < 4 And pt\y >= (rc\bottom -rc\top - 4)
        Result = #HTBOTTOMLEFT
    ElseIf pt\y < 4
        Result = #HTTOP
    ElseIf pt\x < 4
        Result = #HTLEFT
    ElseIf pt\x >= (rc\right -rc\left - 4)
        Result = #HTRIGHT
    ElseIf pt\y >= (rc\bottom -rc\top - 4)
        Result = #HTBOTTOM
    Else
        Result = #HTCAPTION
    EndIf
    ProcedureReturn Result
EndProcedure

Procedure WCB(wnd,msg,wparam,lparam)
  Result = #PB_ProcessPureBasicEvents
  Select msg
    Case #WM_NCHITTEST
       Result = HitTest(wnd,lParam)
    Case #WM_GETMINMAXINFO
       *MinMax.MINMAXINFO = lParam
       *MinMax\ptMinTrackSize\x = 195 
       *MinMax\ptMinTrackSize\y = 260 
       ProcedureReturn 0
  EndSelect
  ProcedureReturn Result
EndProcedure


If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window", #PB_Window_BorderLess)
If CreateGadgetList(WindowID(0))
    ButtonGadget(1, 10,10,80,24,"Ende") 
    TextGadget(2, 10, 40,180,200,"Schieb mich, vergroessere mich") 
EndIf
SetWindowCallback(@WCB())
Repeat
  EventID = WaitWindowEvent()
  Select EventID
    Case #PB_Event_Gadget
    Select EventGadget()
      Case 1: Quit = 1
    EndSelect
    Case #PB_Event_CloseWindow
      Quit = 1
  EndSelect
Until Quit = 1
EndIf
End


Verfasst: 06.01.2007 12:38
von ts-soft
Falls jemand die UserLib von Andreas nicht hat, kann er am Anfang noch folgende Macros einfügen, damit es läuft:

Code: Alles auswählen

Macro HiWord(long)
  (long >> 16) & $FFFF
EndMacro
Macro LoWord(long)
  long & $FFFF
EndMacro

Verfasst: 06.01.2007 12:52
von Kaeru Gaman
Biedermeier hat geschrieben:... feuer und wasser funktioniert [] zusammen nicht (gut) :wink:
aber kla doch...
Gandalf wäre ohne Feuer und Wasser nie von dem Grauen zu dem Weißen aufgestiegen....
die kombination konträrer elemente ist in Magie und Alchemie unverzichtbar.

Verfasst: 06.01.2007 13:50
von AND51
> Gandalf wäre ohne Feuer und Wasser nie von dem Grauen zu dem Weißen aufgestiegen....
> die kombination konträrer elemente ist in Magie und Alchemie unverzichtbar.
Oh Got, was hab ich angerichtet? :lol: Ist das wirklich so lustig, was ich gesagt habe? :D