Français
Source/ Codesnippets

Carets

 

Normann
Strübli
la fois un kleiner Exkurs zum Thema Carets

werde ici pour et pour la fois un paire Sachen Poste qui je
principale aus curiosité la fois probiert habe.

s'il te plaît beim ausprobieren qui angehängte Dossier pas oublier qc
KompilierenMarqueSéparation
WIN32 API Teil 1
THEMA: CARET
Autor: Normann Strübli
Was ist ein Caret?
Ein Caret ist eine Einfügemarke die man von sämtlichen Eingabe-
feldern kennt (Der blinkende Cursor).
Für jedes Fenster kann es nur ein Caret gleichzeitig geben
(Logisch sonst wüsste man ja nicht wo man gerade was eingeben darf)
Das so ein Caret nicht immer ein Strich oder Balken sein muß sondern
auch anders aussehen kann möchte ich in diesem
(nicht ganz erztzunehmenden Beispiel ;-) einmal verdeutlichen.
def LoadImage(6) !"user32","LoadImageA"
DEF CreateCaret(4) ! "USER32","CreateCaret"
Aufruf:   CreateCaret(HWND,HBITMAP,nWidth,nHeight)
HWND:     das Fenster das dem Caret zugeordnet ist
hBitmap:  Ein Handle das den Umriß des Carets definiert,
bei Wert 1 wird ein schwarzes Caret mit nWidth Breite
und nHeight Höhe erzeugt, Wert 2 genauso nur Grau.
Wird ein Bitmap-Handle übergeben so wird dieses Bild
später invertiert dargestellt und die Parameter nWidth
und nHeight werden ignoriert.
DEF ShowCaret(1) ! "USER32","ShowCaret"
Aufruf:   Showcaret(HWND)
Macht das Caret an seiner aktuellen Position auf dem Bildschirm sichtbar.
DEF HideCaret(1) !"USER32","HideCaret"
Aufruf:   HideCaret(HWND)
Entfernt das Caret vom Bildschirm (Umriß und Position bleiben erhalten)
DEF SetCaretPos(2) ! "USER32","SetCaretPos"
Verschiebt das Caret an die angegebenen Koordinaten
DEF GetCaretPos(1) !"USER32","GetCaretPos"
declare Caretpos#
dim Caretpos#,16
Aufruf:   GetCaretPos(Point#)
Kopiert die Position in den Bereich Point#
DEF SetCaretBlinkTime(1) ! "USER32","SetCaretBlinkTime"
Aufruf:   SetCaretBlinkTime(Zeit in ms)
Def GetCaretBlinkTime(0) !"USER32","GetCaretBlinkTime"
Gibt die Zeit in millisekunden zurück die zwischen dem Aufblinken des Carets vergeht
Def DestroyCaret(0) !"USER32","DestroyCaret"
Entfernt die aktuelle Caret-Form aus dem Fenster und vom Bildschirm, das Bitmap
wird dabei allerdings nicht freigegeben.
Windowtitle "Spaß mit Carets"
window 0,0-460,300
declare Bmp_Handle1&,BMP_Handle2&,Bitmap1$,Bitmap2$
Bitmap1$="Caret.bmp"
Bitmap2$="Caret2.bmp"
Bmp_Handle1&=LoadImage(0,addr(Bitmap1$),0,15,15,16) ---- Image 15x15 laden...
Bmp_Handle2&=LoadImage(0,addr(Bitmap2$),0,15,15,16)
Declare Edit_Happy&,Edit_Sad&
@Create("Text",%hwnd,"Dies ist ein Happy-Edit",10,20,200,20)
@Create("Text",%hwnd,"Das hier nicht...",240,20,200,20)
Edit_Happy& = @Create("RichEdit",%hwnd,"",10,40,200,125)
Edit_Sad& = @Create("RichEdit",%hwnd,"",240,40,200,125)

while 1

    getmessage

    if @getfocus(edit_happy&)

        if @or(@or(%message = 256,%message = 273), %message = 513)

            Getcaretpos(caretpos#)
            CreateCaret(edit_Happy&,Bmp_Handle1&,0,0)
            SetCaretPos(long(caretpos#,0),long(caretpos#,4))
            ShowCaret(edit_happy&)

        endif

    elseif @getfocus(edit_sad&)

        if @or(@or(%message = 256,%message = 273), %message = 513)

            Getcaretpos(caretpos#)
            CreateCaret(edit_sad&,Bmp_Handle2&,0,0)
            SetCaretPos(long(caretpos#,0),long(caretpos#,4))
            ShowCaret(edit_sad&)

        endif

    Wend

 
21.05.2004  
 




Rolf
Koch
Hey Normann,
c'est oui vraie stark. Lustige l'affaire.

Rolf
 
21.05.2004  
 



Jepp, Dein Demo Rockt

iF
 
21.05.2004  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.269 Views

Untitledvor 0 min.
p.specht27.06.2022
Manfred Barei28.03.2020
Rc24.12.2015

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie