Kurz nach deinem Posting vom Link hatte erstmal nur AntiVir gemosert gehabt
Beiträge von Jürgen Baier
-
-
Wäre nicht schlecht (Hatte sie damals von Jacob herunter geladen).
Gruß Jürgen -
http://juergenbaier.info/setup_sfx.exe
Ist ein selbstentpackendes Archiv.
Gruß Jürgen -
Frank:
Weiß jetzt nicht ob ich jetzt in die richtige Rubrik poste:
Da ich in einem Freewareprogramm die o.g. DLL einsetze, wurde ich von einigen Anwendern auf die Trojanermeldung von AntiVir angesprochen. Hab AntiVir spaßeshalber installiert (MS Secure Essential meldet keinen Trojaner :-)) - da kommt die Meldung: Tojaner TR/Crypt.XPACK.Gen2 gefunden - Zugriff auf DLL wird nicht erlaubt. Das leidige Thema AntiVir wurde ja hier schon ausgiebig besprochen. Da ich AntiVir sowieso nicht einsetze, ist es mir bisher nicht aufgefallen. Sollen die Anwender eine Ausnahmeregel erstellen (müsste ich dann aber vielleicht auf meiner Homepage mit aufnehmen) oder hast du einen besseren Tipp?
Gruß Jürgen -
Spitze!!! Vielen Dank!
Gruß Jürgen -
-
Code
Alles anzeigenProc Resize If Width(%hWnd)<800 SetWindowPos Listview&=256,3-(Width(%hWnd)-260),(Height(%hWnd)/1.70) SetWindowPos TreeView_MWnd&=53,3-200,(Height(%hWnd)/1.70) ValueMaxY%=Height(Listview&)+45 SetWindowPos GroupBox1_MWnd&=53,(Height(Listview&)+30)-(Width(%hWnd)/2.25),(Height(%hWnd)-ValueMaxY%+10) SetWindowPos GroupBox2_MWnd&=(Width(GroupBox1_MWnd&)+57),(Height(Listview&)+30)-(Width(%hWnd)-51)-(Width(GroupBox1_MWnd&)+10),(Height(%hWnd)-ValueMaxY%+10) SetWindowPos MultiEdit1_MWnd&=60,(Height(Listview&)+80)-(Width(GroupBox1_MWnd&)-15),(Height(GroupBox1_MWnd&)-60) SetWindowPos MultiEdit2_MWnd&=(Width(GroupBox1_MWnd&)+65),(Height(Listview&)+80)-(Width(%hWnd)-45)-(Width(GroupBox1_MWnd&)+30),(Height(GroupBox1_MWnd&)-60) SetWindowPos PicButton1_MWnd&=,60,(Height(Listview&)+50)-20,20 SetWindowPos PicButton2_MWnd&=,85,(Height(Listview&)+50)-20,20 SetWindowPos PicButton3_MWnd&=,110,(Height(Listview&)+50)-20,20 SetWindowPos PicButton4_MWnd&=,(Width(GroupBox1_MWnd&)+65),(Height(Listview&)+50)-20,20 SetWindowPos PicButton5_MWnd&=,(Width(GroupBox1_MWnd&)+90),(Height(Listview&)+50)-20,20 SetWindowPos PicButton6_MWnd&=,(Width(GroupBox1_MWnd&)+115),(Height(Listview&)+50)-20,20 EndIf ' If Width(%hWnd)<800 If Width(%hWnd)>800 SetWindowPos Listview&=256,3-(Width(%hWnd)-260),(Height(%hWnd)/1.70) SetWindowPos TreeView_MWnd&=53,3-200,(Height(%hWnd)/1.70) ValueMaxY%=Height(Listview&)+45 SetWindowPos GroupBox1_MWnd&=53,(Height(Listview&)+30)-(Width(%hWnd)/2.25),(Height(%hWnd)-ValueMaxY%+10) SetWindowPos GroupBox2_MWnd&=(Width(GroupBox1_MWnd&)+57),(Height(Listview&)+30)-(Width(%hWnd)-51)-(Width(GroupBox1_MWnd&)+10),(Height(%hWnd)-ValueMaxY%+10) SetWindowPos MultiEdit1_MWnd&=60,(Height(Listview&)+80)-(Width(GroupBox1_MWnd&)-15),(Height(GroupBox1_MWnd&)-60) SetWindowPos MultiEdit2_MWnd&=(Width(GroupBox1_MWnd&)+65),(Height(Listview&)+80)-(Width(%hWnd)-45)-(Width(GroupBox1_MWnd&)+30),(Height(GroupBox1_MWnd&)-60) SetWindowPos PicButton1_MWnd&=,60,(Height(Listview&)+50)-20,20 SetWindowPos PicButton2_MWnd&=,85,(Height(Listview&)+50)-20,20 SetWindowPos PicButton3_MWnd&=,110,(Height(Listview&)+50)-20,20 SetWindowPos PicButton4_MWnd&=,(Width(GroupBox1_MWnd&)+65),(Height(Listview&)+50)-20,20 SetWindowPos PicButton5_MWnd&=,(Width(GroupBox1_MWnd&)+90),(Height(Listview&)+50)-20,20 SetWindowPos PicButton6_MWnd&=,(Width(GroupBox1_MWnd&)+115),(Height(Listview&)+50)-20,20 EndIf ' If Width(%hWnd)>800 EndProc SubClassProc If SubClassMessage(%hWnd, ~wm_sizing) SetStyle %hwnd, 1, GetStyle(%hwnd, 1) | $02000000 Resize Set("WinProc", 0) EndIf EndProc
Edit: So sieht im Moment ein Teil meine Quelltextes aus. Zwar ist das Flackern wie beschrieben weg, habe aber Probleme bei der Listview, die nicht aktualisiert wird.Gruß Jürgen
-
Code
Alles anzeigen[FONT=Courier New][COLOR=#ff0000]$H Messages.ph[/COLOR][/FONT] [FONT=Courier New][COLOR=#ff0000]$H Windows.ph[/COLOR][/FONT] [FONT=Courier New][B]SubClassProc [/B][/FONT] [FONT=Courier New][B]If[/B] [B]SubClassMessage[/B](%hWnd, ~wm_sizing)[/FONT] [FONT=Courier New] [B][COLOR=#ffffff]SetStyle[/COLOR][/B] %hwnd, 1, [B]GetStyle[/B](%hwnd, 1) | $02000000[/FONT] [FONT=Courier New] Resize[/FONT] [FONT=Courier New] [B]Set[/B]("WinProc", 0)[/FONT] [FONT=Courier New][B]ElseIf SubClassMessage[/B](bt&, ~wm_rbuttondown)[/FONT] [FONT=Courier New][B]SetText[/B] bt&, "Autsch!"[/FONT] [FONT=Courier New] [B]Set[/B]("WinProc", 0)[/FONT] [FONT=Courier New][B]ElseIf SubClassMessage[/B](bt&, ~wm_rbuttonup)[/FONT] [FONT=Courier New] [B]SetText[/B] bt&, "Test1"[/FONT] [FONT=Courier New] [B]SetMenuItem[/B] 3000[/FONT] [FONT=Courier New] [B]Set[/B]("WinProc", 0)[/FONT] [FONT=Courier New][B]ElseIf SubClassMessage[/B](st&, ~wm_mousemove)[/FONT] [FONT=Courier New] [B]SetMenuItem[/B] 3001[/FONT] [FONT=Courier New] [B]Set[/B]("WinProc", 0)[/FONT] [FONT=Courier New][B]ElseIf SubClassMessage([/B]%hwnd, ~wm_close)[/FONT] [FONT=Courier New] [B]SetMenuItem[/B] 3999[/FONT] [FONT=Courier New] [B]Set[/B]("WinProc", 0)[/FONT] [FONT=Courier New][B]EndIf [/B][/FONT] [FONT=Courier New][B]EndProc[/B][/FONT] [FONT=Courier New][B]Proc Resize[/B][/FONT] [FONT=Courier New][B]SetWindowPos[/B] bt& = 0, 50 - [B]Width[/B](%HWnd)/2, [B]Height[/B](%HWnd) - 75[/FONT] [FONT=Courier New][B]SetWindowPos[/B] bt2& = [B]Width[/B](%HWnd)/2, 50 - [B]Width[/B](%HWnd)/2, [B]Height[/B](%HWnd) - 75[/FONT] [FONT=Courier New][B]SetWindowPos[/B] st& = 0, 0 - 0,0; 0[/FONT] [FONT=Courier New][B]SetWindowPos[/B] tb& = 0, 0 - 0,0; 0[/FONT] [FONT=Courier New][B]EndProc[/B][/FONT] [FONT=Courier New][B]declare[/B] bt&, bt2&, st&, tb&[/FONT] [FONT=Courier New][B]declare[/B] ende%[/FONT] [FONT=Courier New][B]cls[/B][/FONT] [FONT=Courier New]st& = [B]create[/B]("StatusWindow", %HWnd, "Statuszeile")[/FONT] [FONT=Courier New]tb& = [B]create[/B]("Toolbar", %HWnd,0,15,1,1000,1)[/FONT] [FONT=Courier New]bt& = [B]create[/B]("Button", %HWnd, "Test1", 0, 50, [B]Width[/B](%HWnd)/2, [B]Height[/B](%HWnd) - 75)[/FONT] [FONT=Courier New]bt2& = [B]create[/B]("Button", %HWnd, "Test2", [B]Width[/B](%HWnd)/2, 50, [B]Width[/B](%HWnd)/2, [B]Height[/B](%HWnd) - 75)[/FONT] [FONT=Courier New][B]SubClass [/B]%HWnd, 1 [/FONT][FONT=Courier New][COLOR=#ff0000]'SubClassing des Hauptfensters einschalten[/COLOR][/FONT] [FONT=Courier New][B]SubClass [/B]bt&, 1 [/FONT][FONT=Courier New][COLOR=#ff0000]'SubClassing des 1. Buttons einschalten[/COLOR][/FONT] [FONT=Courier New][B]SubClass [/B]st&, 1 [/FONT][FONT=Courier New][COLOR=#ff0000]'SubClassing der Statuszeile einschalten[/COLOR][/FONT] [FONT=Courier New][B]whilenot[/B] ende%[/FONT] [FONT=Courier New][B]waitinput[/B][/FONT] [FONT=Courier New][B]If[/B] %Key = 4[/FONT] [FONT=Courier New] Resize[/FONT] [FONT=Courier New][B][COLOR=black]SetStyle %hwnd, 1, GetStyle(%hwnd, 1) - $02000000[/COLOR][/B][/FONT] [FONT=Courier New][B]ElseIf MenuItem[/B](3000)[/FONT] [FONT=Courier New] [B]MessageBox[/B]("Rechtsklick auf Button 1!","Test",0)[/FONT] [FONT=Courier New][B]ElseIf MenuItem[/B](3001)[/FONT] [FONT=Courier New] [B]MessageBox[/B]("Mausbewegung über Statuszeile!","Test",0)[/FONT] [FONT=Courier New][B]ElseIf MenuItem[/B](3002)[/FONT] [FONT=Courier New] [B]MessageBox[/B]("wm_activate","Test",0)[/FONT] [FONT=Courier New][B]ElseIf MenuItem([/B]3003)[/FONT] [FONT=Courier New] [B]MessageBox[/B]("wm_syscommand",str$(&sWParam),0)[/FONT] [FONT=Courier New][B]ElseIf MenuItem[/B](3999)[/FONT] [FONT=Courier New] [B]Case Messagebox[/B]("Wollen Sie das Programm wirklich verlassen?","Frage",36) = 6 : Ende% = 1[/FONT] [FONT=Courier New][B]EndIf[/B][/FONT] [FONT=Courier New][B]endwhile [/B][/FONT] [FONT=Courier New][COLOR=#ff0000]' Subclassing wieder ausschalten[/COLOR][/FONT] [FONT=Courier New][B]SubClass [/B]%HWnd, 0[/FONT] [FONT=Courier New][B]SubClass [/B]bt&, 0[/FONT] [FONT=Courier New][B]SubClass [/B]st&, 0[/FONT] [FONT=Courier New][B]end[/B][/FONT]
Hab den Style aus der Hilfe übernommen. Wenn ich bei o.g. Quelltext eine normale Gridbox seitens Profan bei create ... erstelle, dann klappt es.
In meinem eigentlichen Programm habe ich im Hauptfenster ein Treeview, 2 Multiedits und die Listview, die ich der Fenstergröße anpassen will. Da das Hauptfenster beim vergrößern flackert, wollte ich den Style ausprobieren. Das flackern ist weg, die Listview reagiert aber nicht mehr. Will den Setstyle beim Resize verwenden.
Hoffe du kannst mir einen Tipp geben.
Gruß Jürgen -
Hallo,
kurzes Problem: möchte u.a. eine Listview von der Größe her dem Hauptfenster mit SetWindowPos anpassen; das Fenster kann ich von der Breite her verändern. Da ich das Flackern der vorhandenen Elemente bei der Größenänderung verhindern will, setzte ich den Style: "SetStyle %hwnd, 1, GetStyle(%hwnd, 1) | $02000000" ein - die Listview wird zerstört, die Prozessorauslastung steigt auf 100% - kann mir jemand einen Tipp geben - besten Dank!
Gruß Jürgen. -
Oh man, WindowStyle ises gewesen - Danke!
Gruß Jürgen
-
Habe mal nen kurzen Testcode unter ROC erstellt:
Code
Alles anzeigen$P+ SET("ERRORLEVEL",0) '********************** HINWEISE ******************************** ' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR 4.6 ' DATUM 06.01.2011 um 13:50 Uhr ' VERWENDETE PROFANVERSION IST 12.0-NT XPROFAN ' CODE ERSTELLT UNTER WINDOWS XP ' !!! Dieser Code wird von Roc immer neu erzeugt !!! ' !!! Erst bearbeiten, wenn alle Objekte erzeugt wurden !!! ' !!! Verändern Sie ggf. feste Pfade in variable Pfade !!! DEF GETSYSCOLOR(1) !"USER32","GetSysColor" DECLARE GROUPBOX1& DECLARE TABCTRL1& DECLARE MULTIEDIT1& DECLARE MULTIEDIT2& WINDOWSTYLE 63 WINDOWTITLE "Neues Fenster" WINDOW 22,20-640,500 SET("TRUECOLOR",1) DECLARE ENDE% CLS GETSYSCOLOR(15) USEFONT "MS Sans Serif",13,0,0,0,0 SETDIALOGFONT 1 ' Hier kann ggf. Ihr Menü hin GROUPBOX1& = CREATE("GROUPBOX",%HWND,"GROUPBOX",0013,0013,0200,0200) TABCTRL1& = CREATE("TABCTRL",%HWND,"Reiter1",0013,0224,0197,0227) MULTIEDIT1& = CREATE("MULTIEDIT",%HWND,"MULTIEDIT",0222,0023,0258,0187) MULTIEDIT2& = CREATE("MULTIEDIT",%HWND,"MULTIEDIT",0222,0223,0258,0225) SETFOCUS(%HWND)REPAINT WHILENOT ENDE% WAITINPUT If %KEY=2 ENDE%= 1 ELSEIF %KEY=4 ELSEIF TABCHANGED(TABCTRL1&) 'TABCTRL ELSEIF GETFOCUS(MULTIEDIT1&) 'MULTIEDIT ELSEIF GETFOCUS(MULTIEDIT2&) 'MULTIEDIT ENDIF ENDWHILE
Neuzeichnen geht soweit - wenn ich aber ein anderes Programmfenster davor (schnell) verschiebe, dann kommt das Neuzeichnen des Hauptfensters nicht mehr hinterher. Denke mal, dass die Geschwindigkeit des Rechners auch ein Grund dafür ist?!
[Blockierte Grafik: http://s3.postimage.org/m6uuyrpg/Unbenannt_2.jpg]
-
Komme leider immer noch nicht weiter
Habe den Quelltext von Andreas mal ausprobiert - es hakt, sobald ich ein anderes Fenster davor habe und dieses hin und her bewege.http://postimage.org/image/1zjaeu6tg/
Hatte vor einiger Zeit mal die Sache u.a. mit GetMessage und Repaint probiert gehabt, da lief es unter XP, aber nicht unter Win 7 (dort wurden Teile wieder nicht neu gezeichnet).
Kann mir einer noch einen Tipp geben - besten Dank!
Gruß Jürgen
-
MüllSchlucker: Danke, werde ich mal austesten (meine letzte Antwort war zeitgleich mit deinem Posting gewesen - hatte ich nicht gelesen)
-
Dieter: mit Fenster minimieren hatte ich es am Anfang auch gemacht gehabt - wollte die Sache dann aber nicht den Anwender überlassen, dass er das Fenster wieder maximieren sollte.
@AHT: vielen Dank. Werde versuchen, den Quelltext so weit runterzuschränken - komme dann vielleicht drauf.
Was mich ein wenig ärgert ist, dass ich das Programm unter Win7 entwickelte (welches auch geht) und für XP jetzt korrigieren muss - ist halt jetzt immer ein hin und her.
-
[Blockierte Grafik: http://s1.postimage.org/3i15e6f8/Unbenannt.jpg]
Beispiel einer Internetseite, die ich aufgerufen und anschließend minimiert hatte.
Normalerweise ist drumherum alles grau.
Komischerweis gehts bei einem Minimalbeispiel:
Window 0,0-640,480
WindowTitle "Testprogramm"
Locate 0,0
Print "Dies ist ein Test..."
ShellExec("http://www.juergenbaier.info/","",0)
WaitInput -
Muss neu zeichnen, da ich per Shellexec externe Links und Programme aufrufe. Sobald diese aktiv sind, werden Details im Hauptfenster zerstört bzw. nicht aktualisiert (man sieht z.B. ein Teil des gestarteten Programms im Hauptfenster)
Habe schon unterschiedliches ausprobiert
-
Hallo!
Komme im Moment nicht weiter...
Habe eine Subproc laufen, die den Hauptbildschirm bei bedarf neu zeichnen soll:CodeSubClassProc If SubClassMessage(%hwnd,~WM_PAINT) ~InvalidateRect(%hWnd,0,0) ~UpdateWindow(%hWnd) EndIf EndProc ' SubClass %hWnd,1 ' SubClassing des Hauptfensters einschalten
Das Hauptfenster (1280x800) hat eine Listview, 2 Multiedits, Groupboxen usw.
Unter Windows 7 wird das Programmfenster ohne Flackern aktualisiert, unter XP flackert dieser solange, wie die Message(s) anliegen. Beispiel: ist das Fenster maximiert und gehe auf die ausgeblendete Taskleiste, dann flackert das Fenster so lange, wie die Taskleiste sichtbar ist oder ein anderes Programmfenster z.B. über den Hauptfenster aktiv und hin- herbewegt wird.Kann mir jemand einen Tipp geben? Nach der letzten aufgetretenen Message könnte ich den Bildschirm neu zeichnen lassen, komme aber bei der Umsetzung nicht weiter.
Gruß Jürgen
-
Frank: Spitze, hat geklappt. Danke für deinen Tipp & für die DLL.
Gruß Jürgen -
Hallo,
habe die DLL seit gestern im Einsatz - Spitze! Meine Frage: wenn ich eine Zeile markiert habe und ein Trackmenü aufbaue (nach Drücken der rechten Maustaste), dann verschwindet die markierte Zeile. Kann diese zwar vorher mit GetSelectedLine auswerten und mit SelectedLine wieder markieren, was mir aber bei mehreren markierten Zeilen Kopfzerbrechen bereitet. Kann mir jemand einen Tip geben?
Hintergrund ist: möchte markierte Zeilen nach Anklicken der rechten Maustaste per Menüpunkt im Trackmenü löschen lassen (Status würde ich dann mit GetItemState auswerten).
Gruß Jürgen