| |
|
|
Jörg Sellmeyer | Wenn ich in das Beispiel aus der Profanhilfe statt eines Buttons ein Listview einsetze, funktioniert das Neuzeichnen nicht mehr. Habe ich da einen Fehler drin oder ist das noch ein Profanbug?
Achtung! Nur XProfan11!
$H Messages.ph
$H Windows.ph
$DEFINE TEST
SubClassProc
If SubClassMessage(%hWnd, ~wm_sizing)
SetStyle %hwnd, 1, GetStyle(%hwnd, 1) | $02000000
Resize
Set("WinProc", 0)
ElseIf SubClassMessage(bt&, ~wm_rbuttondown)
SetText bt&, "Autsch!"
Set("WinProc", 0)
ElseIf SubClassMessage(bt&, ~wm_rbuttonup)
SetText bt&, "Test1"
SetMenuItem 3000
Set("WinProc", 0)
ElseIf SubClassMessage(st&, ~wm_mousemove)
SetMenuItem 3001
Set("WinProc", 0)
ElseIf SubClassMessage(%hwnd, ~wm_close)
SetMenuItem 3999
Set("WinProc", 0)
EndIf
EndProc
Proc Resize
SetWindowPos bt& = 0, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
SetWindowPos bt2& = Width(%HWnd)/2, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
SetWindowPos st& = 0, 0 - 0,0; 0
SetWindowPos tb& = 0, 0 - 0,0; 0
EndProc
declare bt&, bt2&, st&, tb&
declare ende%
cls
st& = create("StatusWindow", %HWnd, "Statuszeile")
tb& = create("Toolbar", %HWnd,0,15,1,1000,1)
bt& = create("Button", %HWnd, "Test1", 0, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
$IFDEF TEST
bt2& = create("GridBox", %HWnd, "Test2",0, Width(%HWnd)/2, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
$ELSE
bt2& = create("Button", %HWnd, "Test2", Width(%HWnd)/2, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
$ENDIF
Var cb& = Create("CheckBox",%hwnd,"Listen zufällig füllen",370,30,160,20)
SubClass %HWnd, 1'SubClassing des Hauptfensters einschalten
SubClass bt&, 1'SubClassing des 1. Buttons einschalten
SubClass st&, 1'SubClassing der Statuszeile einschalten
whilenot ende%
waitinput
If %Key = 4
Resize
SetStyle %hwnd, 1, GetStyle(%hwnd, 1) - $02000000
ElseIf MenuItem(3000)
MessageBox("Rechtsklick auf Button 1!","Test",0)
ElseIf MenuItem(3001)
SetText st&,Str$(%message)
MessageBox("Mausbewegung circa Statuszeile!","Test",0)
ElseIf MenuItem(3002)
MessageBox("wm_activate","Test",0)
ElseIf MenuItem(3003)
MessageBox("wm_syscommand",str$(&sWParam),0)
ElseIf MenuItem(3999)
Case Messagebox("Wollen Sie das Programm wirklich verlassen?","Frage",36) = 6 :
Ende% = 1
EndIf
endwhile
'Subclassing wieder ausschalten
SubClass %HWnd, 0
SubClass bt&, 0
SubClass st&, 0
end
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | Es blockiert im Zusammenhang mit der SetStyle-Zeile (was wird da eigentlich per ein Stil gesetzt?). Wenn das auskommentiert wird (beide Zeilen!), funktioniert es aber es flackert wie Hölle. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.08.2008 ▲ |
|
|
|
|
Frank Abbing | $2000000 ist gleich WS_CLIPCHILDREN --> Excludes the area occupied by child windows when drawing occurs within the parent window. This style is used when creating the parent window.
Kann dein Programm mächtig ausbremsen und sollte wohl nur auf Parent-Fenster angewendet werden.
Bei mir funktioniert es in beiden Fällen nicht, egalk ob mit oder ohne SetStyle. Muss los zur Arbeit. |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 04.11.2011 ▲ |
|
|
|