| |
|
|
Georg Teles | Bueno Abend,
bin esta uno meiner Programas "upzudaten" y me fiel ahora sólo en, por qué el ButtonKlick manchmal garnicht reagiert hatte:
Como mein Programa (XTraBar) el Buttons sólo beim Start definiert, kann Yo no absoluten Variables abfragen, como je después de Konfiguration todos 50 oder sólo 1 Button erstellt se.
Comportamiento: "normaler Button": %Message = 78 (klick) oder = 32 (wisch) SKControl erstellter Button: %Message = 272 (klick) oder = 32 (wisch)
= 78 / 272 treten en, si uno esta Buttons normal anklickt. = 32 tritt en (beide Buttons betreffend), sobald uno el Button anklickt (sin loszulassen) y una Richtung "wischt" sin esta a verlassen y el botón del ratón entonces loslässt.
Das kann Yo halbwegs erklären, si yo el Bedeutungen el Messages en el folgenden Liste anschaue...
32 = WM_SETCURSOR (wisch normaler Button UND SKConrtol Button) 78 = WM_NOTIFY (klick normaler Button) 272 = WM_COMMAND (klick SKControl Button)
aber...
el problema: Der obere Screenshot wurde bajo Win10 geschossen.
Win XP, 7 y 8: einfacher Button: %Message = 78 oder = 32 (also igual como Win10) SKConrtol Button: %Message = 32 (siempre)
Eventuell ha el algo con el Fensterobjekten y cómo Windows esta behandelt zutun - Yo vermute, bajo Win 10 voluntad el Aktionen hier mejor ausgewertet ?
Solución: Ein Workarea hierzu Yo hier [...] eingestellt, qué nun bastante bien funktioniert.
Ver código fuente para Screenshot oben, esta benötigt uno el SKControl:
$I SKControl.inc
declarar hdll&
'Dll invitar & inicializar
let hdll& = UseDll("SKControl.dll")
SKCtrl_InitDll()
Ventana de Estilo 2+4+16+20+512
Ventana 200,200-500,600
Título de la ventana "Test"
declarar normalBmp#,hoverBmp#,clickedBmp#
dim normalBmp#,200
cadena normalBmp#,0 = (GetDir$("@")+"\\1.bmp")
dim hoverBmp#,200
cadena hoverBmp#,0 = (GetDir$("@")+"\\2.bmp")
dim clickedBmp#,200
cadena clickedBmp#,0 = (GetDir$("@")+"\\3.bmp")
var b% = Crear("Button",%hWnd,"einfacher Button",250,20,200,40)
var tb11& = SKCtrl_CreateUserButton(%hwnd,0,normalBmp#,hoverBmp#,clickedBmp#,250,80,200,40,%hInstance)
locate 0,0
imprimir "einfacher Button = 78 ODER =32"
imprimir "User def. Button =273 ODER =32"
imprimir
Mientras que 1=1
WaitInput
imprimir %Message
SetFocus(%hWnd)
Case %Key = 2:Romper
EndWhile
'Speicher liberación...
disponer normalBmp#
disponer hoverBmp#
disponer clickedBmp#
'Dll deinitialisieren (Wichtig!) y liberación
SKCtrl_DeInitDll()
FreeDll hdll&
FIN
Grüße Georg |
|
|
| |
|
|
|
H.Brill | Pensé siempre, daß Clicked() beides auswertet : wm_lButtonDown + wm_LButtonUp also Drücken y Liberación.
Das Wischen saber Yo no. Höchstens en Drag&Drop, wo al Control con ratón festhält y irgendwohin zieht.
Was necesidad du porque genau ? |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 12.06.2020 ▲ |
|
|
|
|
Matthias Arlt | Mit Wischen es wohl el bloße Überfahren des Controls con ratón gemeint. Dabei se WM_SETCURSOR=32 zusammen con WM_MOUSEMOVE=512 ausgelöst. |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 12.06.2020 ▲ |
|
|
|
|
Georg Teles | H.Brill (12.06.2020)
Pensé siempre, daß Clicked() beides auswertet : wm_lButtonDown + wm_LButtonUp also Drücken y Liberación.
sí el es correcta, funktioniert auch hier como se - si uno zwischen wm_lButtonDown + wm_LButtonUp nun "wischt", also intenta el Button quasi a "markieren" Es el %Message entonces 32 = WM_SETCURSOR wogegen el normale Clic 78 = WM_NOTIFY - Das passt auch alles
H.Brill (12.06.2020)
Was necesidad du porque genau ?
mich sería más interés, como el SKControl erstellt se oder más una %Message-Liste des Verhaltens de SK-Controls, como el Button zB para enfachen Button otro %Messages liefert
Matthias Arlt (12.06.2020)
Mit Wischen es wohl el bloße Überfahren des Controls con ratón gemeint. Dabei se WM_SETCURSOR=32 zusammen con WM_MOUSEMOVE=512 ausgelöst.
sí así ähnlich
Grüße |
|
|
| |
|
|
|
Matthias Arlt | In el SKControl findet una komplettes Subclassing aller enthaltenen Controls en lugar de. XProfan incluso kannte esta Möglichkeit damals todavía no. Während el Erstellung z.B. des Buttons se en WM_PAINT reagiert y el Dibujar después de Userangaben durchgeführt. Alle en esta Weise erstellten Controls voluntad en uno DLL-internen Liste verwaltet. Von el, qué weiterhin en el Subclassing passiert, se vmtl. no alles a Profano o. el Original-Procedimiento durchgereicht (oder kommt hay auch a), pero sólo, qué para el damaligen Profano-Funktionsumfang (Messagehandling) relevant war. Der zwischenzeitlich aufgekommene XP-Style (Theme), el lo con el SKControl no son, brachte dahingehend weitere Unterschiede con se. |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 13.06.2020 ▲ |
|
|
|
|
H.Brill | Tal vez kannst uno qué rausbekommen, si uno el Messagebehandlung abschaltet (Ayuda : Messageverwaltung incluso tomar) y luego con GetMessage probiert. Yo saber aber el SKControl no, o. habe todavía no con el gearbeitet.
Yo fände lo auch mejor, si XProfan sämtliche Messages durchreichen sería. Das xprofane Messagehandling de hecho puede así bleiben. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 13.06.2020 ▲ |
|
|
|
|
Georg Teles | ¡Hola,
sí por Messagehandling bekommt uno el richtigen Messages, así kam I el 2 Rückgabewerte. Dass todos Controls DLL-intern verwaltet voluntad war No bewusst.
Gracias para el Infos, el genügt me |
|
|
| |
|
|