Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 252034 (13470)
  Suchen
 Zurück zur Übersicht
 AutorThema: Feste position von Dialoge
Fernando Santos
Datum:13.10.02 14:12 Antwortenals Email verschicken (cityelectronica@netcabo.pt) 


Hallo

Ist es möglich eienen Dialog eine
feste positionierung zu geben,
also den Dialog nicht mit der
Maus in der Position auf den
Hauptfenster verschieben zu können?

Danke für jeden Hinweis

Fernando Santos


Martin Pohl
Datum:13.10.02 14:47 Antwortenals Email verschicken (martin_pohl@msn.com) 


Hallo, Fernando!

Das geht mit Dialogen meiner Meinung nach nicht. Aber mit Fenstern müsste das möglich sein.

Gruß, Martin Pohl

http://www.baco.4u.gs


Jörg Sellmeyer
Datum:13.10.02 15:12 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Fernando,
Wenn Du den Dialog nur zur Anzeige brauchst kannst Du es so machen:

Cls
Declare dlg&
dlg&=CreateDialog(%hwnd,"Ich bin unverschiebbar",10,10,200,100)
EnableWindow dlg&,0
WaitInput

Allerdings sind dann keine Eingaben über Buttons oder sonstwas möglich.
Gruß
Jörg


Frank Abbing
Datum:13.10.02 15:15 Antwortenals Email verschicken  


Hallo,

das müßte mit SetWindowLong() möglich sein.

Die ProSpeed.dll beitet erweiterte Möglichkeiten hierzu an, AddWindowStyle() / SubWindowStyle(), um es dem User einfacher zu machen.

Gruß, Frank


Martin Pohl
Datum:13.10.02 15:14 Antwortenals Email verschicken (martin_pohl@msn.com) 


Oder du versuchst es mit API, wenn das geht. Dann machst du das mit @SendMessage()


Horst Horn
Datum:13.10.02 15:16 Antwortenals Email verschicken (info@web-treffpunkt.de) 


Hallo Fernando
Hier eine Vorlage von Thomas Hölzer, der Deine Frage beantwortet
gruss horst
-------------------------------------------------------
' PRFellow-Vorlage
' Autor: Thomas Hölzer
' Ein Dialogfenster unbeweglich machen (ab Profan 5.0 - 32)
' Parameter: Handle des Dialogfensters
' Die Prozedur sollte nicht auf andere Fenstertypen/Controls
' angewendet werden!

Def GetWindowLong(2) !"USER32", "GetWindowLongA"
Def SetWindowLong(3) !"USER32", "SetWindowLongA"

Proc FixDialog
Parameters hd&
SetWindowLong(hd&,-16,Sub(GetWindowLong(hd&,-16),$0C80000))
'SetStyle hd&,Sub(GetStyle(hd&),$0C80000) ' ab Profan 6.5 auch ohne API
ShowWindow(hd&,0)
ShowWindow(hd&,1) ' Erzwingt Aktualisierung (auch MoveWindow,SetWindowPos möglich)
EndProc

' Beispiel
''Declare hdlg&,endebutton%,ende%
''Cls
''UseFont "MS Sans Serif",13,0,0,0,0
''SetDialogFont 1
''Let hdlg&=CreateDialog(%hwnd,"Unbeweglicher Dialog",50,114,498,408)
''Let endebutton%=CreateButton(hdlg&,"&Ende",200,180,60,23)
''FixDialog hdlg&
''
''WhileNot ende%
'' WaitInput
'' Case Getfocus(endebutton%): Let ende%=1
''Wend


Jörg Sellmeyer
Datum:13.10.02 15:55 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Und hier nochmal das Gleiche in Grün:
Cls
Declare dlg&,button&

dlg&=Control("STATIC","",$54CC0100,10,10,200,140,%hwnd,0,%hinstance)
button&=CreateButton(dlg&,"Zurück",10,10,60,24)

While 1
WaitInput
If GetFocus(button&)
DestroyWindow(dlg&)
EndIf
Wend

Ab Profan 6.6 oder so lauffähig. Du siehst es macht immer Sinn die Profanversion anzugeben.
Gruß
Jörg


Fernando Santos
Datum: 13.10.02 17:28 Antwortenals Email verschicken (cityelectronica@netcabo.pt) 


Danke Horst

Funktioniert sehr gut

Grüsse

Fernando Santos


 Zurück zur Übersicht