Deutsch
Quelltexte/ Codesnippets

Control Mauscursor änderung

 
Mauscursor Änderung je nach Control, mit diesem Code kann jedem Control ein eigener Cursor zugeordnet werden.

KompilierenMarkierenSeparieren
DEF ASetClassLong(3) ! User32,SetClassLongA
Def ALoadCursor(2) !USER32,LoadCursorA

proc oid_cur2hdl

    parameters hdl&,cur&
    add cur&,32648
    ASetClassLong(hdl&,-12,ALoadCursor(0,cur&))

endproc

oid_cur2hdl %hwnd,1
oid_cur2hdl toolbar&,1
oid_cur2hdl button&,2
oid_cur2hdl input&,4 ..5...6...7...... usw.
 
27.05.2004  
 




Manfred
Barei
Hallo if,

wie muß ich vorgehen wenn ich verschiedene Cursor aus der Prfrun32 laden und den Controls zuweisen möchte.

Grus Manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
13.07.2004  
 



Achso, na ist ganz einfach:
KompilierenMarkierenSeparieren
 {$cr}
print
useextcursor %hinstance , "DRUCKER"
waitkey
Bis denne, iF
 
14.07.2004  
 




Manfred
Barei
Hallo if,

ja das ist mir klar, so mach ich es ja im moment.
Jetzt möchte ich aber jedem Control einen eigenen Cursor zu weisen.
sprich dem %HWnd Cursor 1, den Buttons Cursor 2 und so weiter.
In deinem ersten besispiel war es ja woll auch so wen ich es richtig verstanden habe, da wurden aber die Cursor aus einer externen DLL geladen.
Diese möchte ich aber nicht, ich möchte keine seperate dll mit liefern, sonder die Cuirsor aus der Prfrun32 laden und den einzelnen Controlls zuzweisen (wenn dieses möglich ist?).

Ich hofe Du kannst helfen.

grus manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
16.07.2004  
 



Cool, soll mal einer sagen ich könnte nicht am Thema vorbei-quatschen.
KompilierenMarkierenSeparieren
 {$iq}
DEF ASetClassLong(3) ! "User32","SetClassLongA"
Def ALoadCursor(2) !"USER32","LoadCursorA"
print
ASetClassLong(%HWND,-12,ALoadCursor(%hinstance,"DRUCKER"))
waitinput
Bis denne, iF
 
16.07.2004  
 




Manfred
Barei
Hallo if,

ja so meinte ich es, jetzt klappt es.

Jedoch habe ich noch eine Frage dazu :?: , wie belege ich die Menüleiste mit einem eigenen Cursor?

Das Hauptwindow und die Buttons ist klar aber die Menüleiste?

Für deine nochmalige hilfe jetzt schon ein Danke!

Grus Manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
18.07.2004  
 



Nun, das ist nicht all-zu einfach, mit Subclassing oder einem Nebenthread ginge es jedoch schon. Hast Du wirklich noch Interesse? Dann würde ich mich da mal ransetzen. Braucht XProfan.

Bis denne, iF
 
18.07.2004  
 




Manfred
Barei
Hallo if,

ja , währe sehr interesant.
XProfan ist im einsatz.

grus manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
18.07.2004  
 



Ok, ich schau ob ich morgen dazu komm. Bis denne.
 
18.07.2004  
 



Nagut, du hast es ja so gewollt.
KompilierenMarkierenSeparieren
 {$crq}
DECLARE A%,B%,C%,A$,B$,C$,A&,B&,C&,A!,B!,C!,A#,B#,C#,FUNCT1&,FUNCT2&,FUNCT3&,MINID%,MAXID%,ASM&,DUMMY&,INFO%
Declare mxi#,threadstack%
threadstack%=0
WINDOWTITLE ""
WINDOWSTYLE 16+8+2
WINDOW 50,50-500,150
USERMESSAGES 16
SETACTIVEWINDOW(%HWND)
INFO%=CREATE("text",%HWND,"",200,50,200,20)
DEF GETMODULEHANDLE(1) !"KERNEL32","GetModuleHandleA"
DEF GETPROCADDRESS(2) !"KERNEL32","GetProcAddress"
DEF CREATETHREAD(6) !"KERNEL32","CreateThread"
DEF TERMINATETHREAD(2) !"KERNEL32","TerminateThread"
A$="Kernel32"
A&=GETMODULEHANDLE(ADDR(A$))
A$="Sleep"
FUNCT1&=GETPROCADDRESS(A&,ADDR(A$))
A$="User32"
A&=GETMODULEHANDLE(ADDR(A$))
A$="GetMenuState"
FUNCT2&=GETPROCADDRESS(A&,ADDR(A$))
A$="SendMessageA"
FUNCT3&=GETPROCADDRESS(A&,ADDR(A$))
POPUP "Datei"
APPENDMENU 2001,"Neu"
APPENDMENU 2002,"Öffnen"
APPENDMENU 2003,"Speichern"
MINID%=2001
MAXID%=2003
DiM B#,200
CLEAR B#
LONG B#,0 	=FUNCT1&
LONG B#,4 	=FUNCT2&
LONG B#,8 	=FUNCT3&
LONG B#,12 	=&HMENU
LONG B#,16	=MINID%
LONG B#,20	=MAXID%
LONG B#,24	=INFO%
LONG B#,28	=20
LONG B#,32	=0
LONG B#,36	=0
STRING B#,40="Neue Datei anlegen"
STRING B#,60="Datei öffnen"
STRING B#,80="Datei speichern"
STRING B#,100="Kein Menü"
DiM A#,100
LONG A#,0=-1947432107
LONG A#,4=1200294013
LONG A#,8=1200177172
LONG A#,12=276269856
LONG A#,16=174727403
LONG A#,20=-788592757
LONG A#,24=-11141014
LONG A#,28=1200295031
LONG A#,32=1037106948
LONG A#,36=128
LONG A#,40=2005468021
LONG A#,44=1200309792
LONG A#,48=-264552428
LONG A#,52=1603001461
LONG A#,56=608668448
LONG A#,60=527745851
LONG A#,64=723804041
LONG A#,68=-1014296481
LONG A#,72=-149135477
LONG A#,76=-2084109341
LONG A#,80=1783638208
LONG A#,84=-15963648
LONG A#,88=1200298103
LONG A#,92=-2083455224
LONG A#,96=-1569521153
ASM&=CREATETHREAD(0,0,A#,B#,0,ADDR(DUMMY&))
Class mxiiNt = #iNtTime&,#iNtPrc&,#iNtID&,OniNt@,iNtOn@,iNtOff@
Dim mxi#,mxiiNt
mxi#.OniNt(100,ProcAddr("Thread",0))
mxi#.iNtOn()

WHILEnot equ(%key,2)

    WAITINPUT

    IF %UMESSAGE=16

        BREAK

    ENDIF

ENDWHILE

mxi#.iNtOff()
TERMINATETHREAD(ASM&,259)
DISPOSE A#
DISPOSE B#
end

proc thread

    case threadstack%:return
    add threadstack%,1

    if "Kein Menü"=gettext$(info%)

        usecursor 0

    else

        usecursor 4

    endif

    add threadstack%,-1

endproc

Proc mxiiNt.OniNt

    Parameters time&, proc&
    .iNtTime& = time&
    .iNtPrc& = proc&

Endproc

Proc mxiiNt.iNtOn

    .iNtID& = External("user32.dll","SetTimer",0,0,.iNtTime&,.iNtPrc&)

Endproc

Proc mxiiNt.iNtOff

    If .iNtID& <> 0

        External("user32.dll","KillTimer",0,.iNtID&)

    EndIf

Endproc


Bis denne, iF
 
19.07.2004  
 



Nachtrag:

Einem Control den Default-Cursor setzen:
KompilierenMarkierenSeparieren
KompilierenMarkierenSeparieren
OCR_APPSTARTING = { $7F8A | 32650 }
OCR_CROSS = { $7F03 | 32515 }
OCR_HAND = { $7F89 | 32649 }
OCR_IBEAM = { $7F01 | 32513 }
OCR_ICOCUR = { $7F87 | 32647 }
OCR_ICON = { $7F81 | 32641 }
OCR_NO = { $7F88 | 32648 }
OCR_NORMAL = { $7F00 | 32512 }
OCR_SIZE = { $7F80 | 32640 }
OCR_SIZEALL = { $7F86 | 32646 }
OCR_SIZENESW = { $7F83 | 32643 }
OCR_SIZENS = { $7F85 | 32645 }
OCR_SIZENWSE = { $7F82 | 32642 }
OCR_SIZEWE = { $7F84 | 32644 }
OCR_UP = { $7F04 | 32516 }
OCR_WAIT = { $7F02 | 32514 }
 
16.09.2006  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.054 Betrachtungen

Unbenanntvor 0 min.
H.Brill14.04.2021
Klaus Ernst20.04.2016
Mittermeier Daniel09.01.2013
Julian Schmidt25.02.2012
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

unbekannt (6x)
Manfred Barei (4x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie