| |
|
|
- Page 1 - |
|
|
|
|
| |
|
|
| |
|
- Page 4 - |
|
|
| Jörg Sellmeyer
Ich vermute mal, hinter Deinem sc.setup(...) versteckt sich so etwas wie SetWindowPos oder?
Ja, aber das ist schon deutlich mehr.
Jörg Sellmeyer
Das Ganze wird dann 10 Pixel nach rechts "neben" den Monitor geschoben.
Mal 10 nicht Plus - und das ist auch wichtig da Plus hier zu wenig ist bei Multimonitoren.
Jörg Sellmeyer
Wobei da ja auch reichen würde, es 10 Pixel neben das Hauptfenster zu verschieben.
Das Control kann 2 Haupteigenschaften haben: Als Scroll-Window und Scroll-Control. Fenster nach Hauptfenster+10 reicht nicht, Control nach Hauptfenster+10 reicht wegen dem Clipping.
Stefan M. Caillet
Klappt super.
Gern geschehen! |
|
|
| |
|
|
|
Jörg Sellmeyer |
Mal 10 nicht Plus
Natürlich Mal - wer lesen kann ist klar im Vorteil Danke per die Erklärungen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.11.2008 ▲ |
|
|
|
|
Stefan M. Caillet | Habe ffolgendes bein Verstecken der MYAREA1 festgestellt: Wenn ich nun ein Static oder was auch immer auf den Dialog lege und dann das fenster minimiere und wieder vergrössere, wird das Statich wieder von der MYAREA1 überdeckt uund die MYAREA1 ist wieder aktiv. Dies ist dadurch zu verhindern, dass während die MYAEA1 verstekt ist, auch das Subclassing gestoppt wird! zum Glück reicht es, vor dem einblenden des Statics mit dem Befehl "SubClass MYDLG&, 0" Das Subclassing des Dialogfensters auszuschalten. Wenn das Static geschlossen , und die MYAREA1 wieder angezeigt wird, muss einfach mit "SubClass MYDLG&, 1" das Subclassing wieder aktiviert. Stefan |
|
|
| Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 10.11.2008 ▲ |
|
|
|
|
| Man muss noch nicht einmal das SubClassing dafür abstellen, sondern nur die sc.subClass(meinControl... (per z.B. case) aus der subClassProc ausklammern bzw. garnicht erst "anrennen" wenn diese keine Funktion tun soll. KompilierenMarkierenSeparierenalso im Prinzip lediglich ein bool iWannaThatmeinControlScrollAreaIsDoingSomeJob nötig.
Der Witz ist aber, dass es tatsächlich wohl performanter wäre, zusätzlich auch noch das SubClassing per meinControl abzustellen - also so, wie Stefan bereits angemerkt hat. In diesem Fall muss aber auch zusätzlich das Case genutzt werden sodass sc.subClass garnicht erst aufgerufen wird, wenn kein SubClassing per meinControl durchgeführt werden soll. |
|
|
| |
|
|
|
Stefan M. Caillet | Auf die Idee die Aufrufe in der SubClassProc ganz oder auch teilweise zu verhindern, bin ich auch gekommen. Da ich in meinem Programm per das Verstecken und Mostra der MYAREA1 zwei kleine Procs (ShowArea + HideArea) yerwende, ist es nicht nötig, noch extra ne Variable per die Steuerung der SubClassProc zu verwenden. Ich hab den Befehl "SubClass MYDLG&,n" in die beiden Procs aufgenommen, sodass ich nicht bei jedem Screen, den ich auf diesem Dialogfeld nutzen will, beim Verstecken der MYAREA1 auch noch separat ans Ausschalten des Subclassings denken muss. Somit bleibt das Programmgerüst auch per spätere verwendung universeller einsetzbar. Stefan |
|
|
| Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 10.11.2008 ▲ |
|
|
|
|
Stefan M. Caillet | Hallo iF, wiedermal ich mit ner Frage: Da %MouseX u. %MouseY auf dem Dialogfenster MYDLG& nicht Funktionieren, frage ich die MausPosition mit nachfolgendem Code ab. (Ich brauche die Koordinaten um sie an die GET_MonthCalHit Prozedur zu übermitteln.) KompilierenMarkierenSeparierenDEF ScreenToClient(2) ! "user32","ScreenToClient"
DEF GetCursorPos(1) !"USER32","GetCursorPos"
declare MouseX&,MouseY&
proc MausPos
declare rect#
Dim rect#,16
GetCursorPos(rect#)
ScreenToClient(mydlg&,rect#)
MouseX&=Long(rect#,0)
MouseY&=Long(rect#,4)
Dispose rect#
Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 20.11.2008 ▲ | |
|
|
|
|
| Asynchon mit (GetAsyncKeyState(1) & $8000) per die Linke, und ...state(2) per die Rechte, probier aber erstmal mit getKeyState.
Tip: Die mouse.inc (die z.B. auch im Cards Paket beiliegt) hat eine Funktion getMousePos die a) global und b) per Fenster die Positionen korrekt ausgibt, einfach per Parameter das Handle angeben oder Parameter weglassen. Darin sind aber auch die Funktion lm_ und rm_ definiert per Linke und Rechte Maustastenabprüfung.
Aber im Grunde solltest Du die Message vom Control beziehen, ob darauf geklickt wurde - z.B. wm_lButtonDown, oder eine auf das Control angepasstere Nachricht, denn meist beinhalten diese Notizie auch die Clientposition des Klicks. |
|
|
| |
|
|
|
Jac de Lad | Hallo iF!
Im Zuge des Umbaus von Gamsav auf skalierbares Fenster habe ich festgestellt, dass die Scrollsbars des Scrollcontrols nach einem Aufruf von ?.Setup() nicht bzw. fehlerhaft angezeigt werden. Vielleicht kannst du da was machen.
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 13.02.2009 ▲ |
|
|
|
|
| ScrollControl Update: [...] - jetzt werden Scrollbarpfeile auch unter Windows Vista und 7 korrekt gezeichnet. |
|
|
| |
|
|
|
| Update vom ScrollWindow-Control, Download oben, völlig neue "Technik", absolut flimmerfrei und unschlagbar einfach in der Anwendung. KompilierenMarkierenSeparieren |
|
|
|
|
| Bitte einmal diese Exe testen, ob das Scrollfenster wirklich auch unter allen Umständen immer perfekt funktioniert und die Scroller sich auch immer korrekt ansprechen lassen: [...] |
|
|
| |
|
|
|
ByteAttack | Funktioniert bei mir (Win7/64) einwandfrei. |
|
|
| |
|
|