Curseur d'un scrollbar

Résolu
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023 - 16 nov. 2005 à 21:15
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 nov. 2005 à 10:38
bonjour,



j'aimerais gerer le curseur du scrollbar mais il reste à la meme place

pourtant je recupere bien l'evenement :


case SB_THUMBTRACK: // curseur


si.nPos = si.nTrackPos;


break;



il passe bien dedans, le scroll est bien fait

mais le curseur ne bouge pas.....



quelle est la methode à appeler ?

ou la propriete à rajouter ?



merci

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2005 à 00:12
Le curseur ne bouge pas seul, le systeme t'envoie les events et ensuite c'est toi qui positionne comme tu veux.
SetScrollInfo(hscr, SB_CTL, &sinf, TRUE);
exemple ici:
http://www.cppfrance.com/code.aspx?id=10966

fetsr > Je n'ai pas vu mention de MFC dans la question ni dans le code exposé.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
fetsr Messages postés 24 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 31 mars 2006
16 nov. 2005 à 21:57
Il faut le faire dans le MOUSE_MOVE. L'exemple suivant fait apparaitre le curseur de SIZE en largeur, lorsque le bouton gauche est appuyé sur la fenetre cliente (il faut bien sur deriver la classe ScrollBar):

void CMaClasse::OnMouseMove(UINT nFlags, CPoint point)
{
if(MK_LBUTTON == nFlags)
{
HCURSOR cursor = LoadCursor( NULL, IDC_SIZEWE );
if(cursor != NULL)
{
if(NULL == ::SetCursor( cursor )) // affiche le curseur
{
TRACE("PB si on passe ici\n");
}
}
}
CWnd::OnMouseMove(nFlags, point);
}
0
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
17 nov. 2005 à 08:44
merci brunews !

par rapport à ton source, j'ai qqs questions
en dehors du fait que devcpp n'aime pas ce type d'assembleur (je verrais + tard, comment traduire en asm comprensible par mingw)

à quoi servent les 2 lignes suivantes :
#pragma warning(disable: 4311) // qui me burnent !!!
#pragma warning(disable: 4244) // autant !!!

merci

fetsr > les mfc, comme dire, ... ben voila...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2005 à 10:38
Evite l'affichage dans VS par le compilo du nro de warning spécifié.

Pour ce qui est de l'ASM j'espère que plus tard tu seras sur un compilo pro qui respecte la syntaxe au standard Intel.
Encore qu'en voulant c'est faisable maintenant, il y a Code::Blocks (ou nom de ce genre) qui est un IDE gratuit qui peut entre autres piloter le compilo de Visual Studio, comme VS 2005 Express est en téléchargement gratuit et le platform SDK aussi...

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous