| |
|
|
Ernst | ¡Hola Fachleute! El Eingaben en el Editar debería para weitere Verarbeitung con <Enter> abgeschlossen voluntad (analog como en Input; lo sino que debe eben no una propio Entrada-Dialogbox ser). Das Abfragen el Enter-Taste es kein Problema, aber como kann Yo, el störenden Beep unterbinden? Yo ya geraume Tiempo gegooglet, aber sin algo verwertbares para encontrar. Sombrero alguien una profane- oder api-Solución ? Grüsse Ernst |
|
|
| |
|
|
|
RudiB. | qué porque para una Beep... habs veces getestet.... hier una Ejemplo de el Foro...
$H windows.ph
Def CN(2) If(%mensaje = $0111,((&lparam = &(1)) And (HiWord(&wparam) = &(2))),0)
Def EN_CHANGE(1) CN(&(1),$0300)
Def EnterOn(1) (%key = 13) And (&lparam = &(1))
Cls
Var test& = Control("DIÁLOGO","",$54000000,310,10,200,24,%hwnd,0,%hInstance)
Var Ed& = Crear("Edit",test&,"Hier es el Text",0,0,200,24)
SetFocus(Ed&)
Imprimir "Taste oder Enter drücken"
Mientras que 1
WaitInput
Localizar 2,1
If %key = 2
Romper
ElseIf EnterOn(Ed&)
Imprimir "Enter gedrückt " + GetText $(&lparam)
ElseIf EN_CHANGE(Ed&)
Imprimir GetText $(&lparam)
EndIf
Wend
|
|
|
| |
|
|
|
Ernst | Vielen Dank; el código de Jörg Tuve ya veces gesehen, war aber nun anscheinend no imstande ihn otra vez zufinden
en obigem Code Yo nun Edit con Farbe hinterlegt, sin embargo en read-only Es el Farbe weg (grauer Hintergrund) - ebenso sin Farbe ( weißer Hintergrund) se en grau gesetzt.
$H windows.ph
$H messages.ph
Def CN(2) If(%mensaje = ~WM_COMMAND,((&lparam = &(1)) And (hiword(&wparam) = &(2))),0)
Def EN_CHANGE(1) CN(&(1),~EN_CHANGE)
Def EnterOn(1) (%key = 13) And (&lparam = &(1))
Declarar OCP&,Brush&
' -------------------------------------------------------------------------------------
Proc ControlProc
parámetros Wnd&, Msg&, wParam&, lParam&
IF Brush&
~DeleteObject(Brush&)
Endif
If msg&=~WM_CTLCOLOREDIT or msg&=~WM_CTLCOLORSTATIC
Brush& = ~CreateSolidBrush(RGB(255,255,170))
~SetBkMode(wParam&, ~TRANSPARENT)
Volver Brush&
Endif
Volver ~CallWindowProc(OCP&,Wnd&, Msg&, WParam&, LParam&)
ENDPROC
' -------------------------------------------------------------------------------------
CLS
Var test& = Control("DIÁLOGO","",$54000000,310,10,200,24,%hwnd,0,%hInstance)
Var Ed& = Crear("Edit",test&,"Hier es el Text",0,0,200,24)
OCP& = ~SetWindowLong(test&,~GWL_WNDPROC, ProcAddr(ControlProc,4))
SetFocus(Ed&)
SendMessage(ed&,$CF,1,0)' read only
Imprimir "Taste oder Enter drücken"
Mientras que 1
WaitInput
Localizar 2,1
If %key = 2
Romper
ElseIf EnterOn(Ed&)
Imprimir "Enter gedrückt " + GetText $(&lparam)
ElseIf EN_CHANGE(Ed&)
Imprimir GetText $(&lparam)
EndIf
EndWhile
IF Brush&
~DeleteObject(Brush&)
Endif
End
hay nun irgendeine Möglichkeit, el Editar en read-only a conjunto, wobei aber el Color de fondo retenido ?
Grüsse y Dank en el Vorhinein
hab's ya gefunden; si Edit read-only es, envía no ~WM_CTLCOLOREDIT pero ~WM_CTLCOLORSTATIC. Im Code (oben) eingefügt y funkt. - JUHU |
|
|
| |
|
|