cs_Cendra
Messages postés56Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention 4 février 2008
-
18 nov. 2002 à 20:45
cs_Cendra
Messages postés56Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention 4 février 2008
-
2 déc. 2002 à 20:44
je cherche a mettre un curseur personalisé ( curseur.cur ) dans un de mes programmes mais j'ai du mal a utiliser l'api LoadCursorA ....
on m'a parler d'une api LoadCursorFromFile mais j'ai rien trouvé dessus
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 19 nov. 2002 à 20:06
je crois ke c pas LoadCursorFromFile mais LoadImage
dont la syntaxe est la suivante :
push LR_LOADFROMFILE ;c la le loadfromfile
push 0
push 0
push IMAGE_CURSOR ;specifie que c un curseur
push offset <str_fichier> ;l'offset de la var contenant le nom de ton fichier
push 0
call LoadImage
si tu vx utiliser LoadCursor c possible mais ds ce cas fo creer un fichier ressource a lier avec ton prog pis fo preciser l'instance de ton programme ds l'appel c tt
hum... mais il serait pas plus simple de poser ce genre de questions sur un forum C/Cpp ? je pense que tu obtiendrais des reponses plus rapidement
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 20 nov. 2002 à 22:49
ah je croyais que tu voulais le charger a partir d'un fichier. autrement LoadImage permet plus de possibilites que LoadCursor. sinon pr le SetCursor, vo pas mieux l'inclure directement ds la creation de la fenetre ? ds la struct WNDCLASSEX ? pk a moins que tu veuilles changer tt le tmps de curseur
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 21 nov. 2002 à 23:19
le WNDCLASSEX (ya aussi WNDCLASS) c la classe de fenetre que tu utilises qd tu cree ta fenetre windows, tas bien du passer par la avant den arriver aux curseurs ?
bon ben cette structure possedent tt les membres necessaires pr donner une apparence a ta fenetre et dedans ya le membre hCursor qui est a la position 1ch qui permet d assigner un curseur a ta fenetre qd tu vas la creer
donc tu rajoutes ds l'initiation de la classe de fenetre a la place du traditionnel
.code
push IDC_ARROW ;charge un curseur fleche par defaut
push 0 ;aucune instance puiske curseur par defaut
call LoadCursor
mov [wc.hCursor],eax
bah tu vas ecrire :
.data
cursor db "mycur.cur",0
.code
push LR_LOADFROMFILE ;chargement a partir dune source externe
push 0 ;hauteur par defaut demandee
push 0 ;largeur par defaut demandee
push IMAGE_CURSOR ;specifie que l'image demandee est un curseur
push offset cursor ;charge ton curseur personalise
push 0 ;aucune instance puiske fichier externe
call LoadImage
mov [wc.hCursor],eax
voila c aps vraiment klr dsl (mais chui aps un bon prof ^^ g que 14ans ;p) mais si tu vx plus de precision, je pense quil serait bon voir tres bon de te procurer (si tu ne las pas deja le Win32 Developper's Reference, c de langlais mais c la meilleure reference offline pk online ya MSDN quest meilleur)
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 23 nov. 2002 à 10:17
question stupide mais... c koi BmpButton ?? pk si c une fonction de l'API je connais pas :/ on c jms, mes references datent un peu, v voir sur MSDN mais g jms entendu parle dune telle fonction
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 23 nov. 2002 à 11:04
euh bah g aps trouve ce que ctait BmpButton mais si tu veux savoir comment faire pour que les boutons crees avec CreateWindow prennent aussi le curseur perso ya 2 solutions soit :
1°) Solution du galerien pur...
tu cree une classe de fenetre personnalisee avec ton curseur comme curseur par defaut
cette solution est tres fatiguante etd emande du temps dc c deconseille en + tu pourras plus profiter des models par defauts (aussi pas bo soient ils) de boutons de MS
2°) Bon alors la 2sd c de changer le curseur de ton bouton sans pour autant en creer une new classe, pour ca tu cree un bouton avec CreateWindow, normal puis apres tu fais
push hCur ;hCur est el handle de ton curseur
push GCL_HCURSOR ;indique que tu vas modifier le curseur
push hBttn ;ici hBttn est le handle de ton bouton
call SetClassLong
voila chai aps si ct ca que tu voulais sinon explike moi plus en details ce que tu vx dire par bouton cree avec BmpButton ?
BmpButton is a custom control that uses 2 bitmaps for the UP and DOWN positions.
Parameters
1. hParent The handle of the window that thew control will be displayed on.
2. topX The top "x" co-ordinate for the control.
3. topY The top "y" co-ordinate for the control.
4. rnum1 The resource ID for the UP position bitmap.
5. rnum2 The resource ID for the DOWN position bitmap.
6. ID The identification number to attribute to the control.
Return Value
The return value is the handle of the control.
Comments
This function allows the programmer to exactly control the appearance of the bitmap button. When the button is clicked, it sends a WM_COMMAND message to the parent on release as is normal for buttons.
This control should be processed in the message handling proc like a normal button, trap the WM_COMMAND message in the parent of the control and process the wParam parameter to obtain the control ID.
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 23 nov. 2002 à 22:17
bon alors je connais rien de cette lib (je savais meme aps que ca existait ;) enfin par contre je connais un moyen de faire ce que tu cherches a faire cad un bouton avec une image qui change qd on appuie dessus et le curseur aussi
en fait ca repose sur les owner-drawn buttons, c un control cree un normallement avec le style BS_OWNERDRAW en +, apres lavoir cree tu geres le dessin de la surface du bouton en repondant au messages WM_DRAWITEM qui est envoye a la fonction callback de la fenetre parent a chaque fois ke le bouton est redessine
bon voila c lexplikation pr le code g mis un lien en dessous, c une source a moi qui est sur un compte multimania qui me sert pr les echanges et autres experimentations
pis sinon une page de MSDN pr mieux comprendre, la syntaxe est en C
si tas des questions (et vu comme mon source ets clair tud evaris en avoir rapidement ;p) poses les moi sur ce forum