| |
|
|
Georg Hovenbitzer | ¡Hola zusammen,
es ir sí echt peinlich dies a fragen pero yo No entre en detrás de él.
Yo möchte determinar si uno una Haga doble clic en, sei lo links oder rechts, en una deaktiviertes Editar campo macht y dies en una Ventana principal qué con Ventana de Estilo 8 + 16 + 512 + 1024 erstellt wurde.
Kann me como alguien helfen ? |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 19.05.2006 ▲ |
|
|
|
|
Frank Abbing | Usted musst el Message WM_LBUTTONDBLCLK, o. WM_RBUTTONDBLCLK auslesen. Beim mittleren Mausklick es mittels WM_MBUTTONDBLCLK, sofern dieser disponible es. |
|
|
| |
|
|
|
Georg Hovenbitzer | ¡Hola Franco,
dies Yo intenta, aber el kommen no a. Yo habe irgendwo veces gelesen, dass no todos Controls esta Message senden y en me es sí una deaktiviertes Editar Feld. Hast du tal vez una Stück Code para Testen para mich ? |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 19.05.2006 ▲ |
|
|
|
|
| WM_NOTIFY es no grundsätzlich gesetzt, el es correcta.
Lo son De todos modos todavía el Ausweg en el Fastmode. Un propio wProc podría el Message abfangen.
Yo zitier aber auch veces de el Phorum: [...]
Autor: Dieter Zornow 26.08.04 07:59 hallo carlo, Yo benutze folgende Rutina, el bajo allen Windowsversionen sicher funktioniert. KompilierenMarcaSeparaciónen esta a nutzen must el sólo el focus para Eintrag bringen ansonsten must du sólo con linkem Clic marca. Viele Grüße de Bangkok Dieter |
|
|
| |
|
|
|
Frank Abbing | Einfacher es aber: KompilierenMarcaSeparación Usted musst el Usermessages conjunto, así ellos WaitInput verlassen...
Hm, Waitinput verarbeitet aber sólo Messages vom Ventana principal. Um Control-Messages a verarbeiten, musst du ellos subclassen. |
|
|
| |
|
|
|
| Frank Abbing
Um Control-Messages a verarbeiten, musst du ellos subclassen. Womit wir probablemente el fastmode son... |
|
|
| |
|
|
|
Frank Abbing | Eigentlich no, IF. Nur si Si es usted el Ventana principal subclassen willst. |
|
|
| |
|
|
|
Sven Bader | Also si yo lo con usermessages mache se 513 y 514 erkannt (links gedrückt/losgelassen), el Haga doble clic en Message se nie erkannt. Andere wilde Konstruktionen con waitkey + getmessage + (%Message = 273) trabajo auch no überall y son para Programas con otro Abfragen unbrauchbar, porque esta entonces meist no mehr trabajo (habe parallel no Buttonklick con wm_command mehr abfragen puede)
Oder funktioniert en euch el Ejemplo? KompilierenMarcaSeparación |
|
|
| |
|
|
|
| Mit el EasyVENT.dll y Incluir kannste auch Kinderleicht una Mausdoppelclick determinar [...] |
|
|
| |
|
|
|
Frank Abbing | Es sin Dll viel leichter... Um Doppelklicks a empfangen muss lediglich el CS_DBLCLKS Class-Style gesetzt voluntad. So como en el API-Ayuda en efecto es. KompilierenMarcaSeparación |
|
|
| |
|
|
|
Sven Bader | Damit es, danke
Mi bisherige Variante: KompilierenMarcaSeparaciónDef Key(1) !User32,GetAsyncKeyState
Def windowfrompoint(2) !USER32,WindowFromPoint
Def GetCursorPos(1) !USER32,GetCursorPos
cls
usermessages 16
Declare dbl&, dbl%,mousepos#,oldx%,oldy%
dim mousepos#,8
PROC Doppelklick
Parameters handle&
if (abs(key(1)>1) ) & (dbl% = 0) & (windowfrompoint(long(mousepos#,0),long(mousepos#,4)) = handle&)
dbl& = &gettickcount+400 Doppelklickzeit
dbl% = 1
oldx% = long(mousepos#,0)
oldy% = long(mousepos#,4)
elseif (abs(key(1)<2)) & (dbl% = 1) & (windowfrompoint(long(mousepos#,0),long(mousepos#,4)) = handle&)
dbl% = 2
case (&gettickcount > dbl&) : dbl% = 0
elseif (abs(key(1)>1)) & (dbl% = 2) & (&gettickcount < dbl&) & (windowfrompoint(long(mousepos#,0),long(mousepos#,4)) = handle&)
if ((abs(oldx% - long(mousepos#,0))<5) & (abs(oldy% - long(mousepos#,4))<5)) Maus maximal 5 Pixel verschoben
dbl% = 3
else
dbl% = 0
endif
elseif ((abs(key(1)>1)) & (dbl% = 2)) | (dbl% = 3)
dbl% = 0
endif
return if(dbl% = 3,1,0)
EndProc
whilenot (%umessage = 16)
waitinput
sleep 50
getcursorpos(mousepos#)
case Doppelklick(%hwnd) : print Doppelklick
endwhile
disponer mousepos#
|
|
|
| |
|
|
|
Frank Abbing | Como sería Yo el API-Variante necesariamente vorziehen, porque el User el Haga doble clic en-Tiempo sí einstellen kann. |
|
|
| |
|
|