begin process at 2012 05 29 17:59:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Pb de changement de curseur (SetClassLong)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb de changement de curseur (SetClassLong)

jeudi 3 juin 2004 à 13:18:55 | Pb de changement de curseur (SetClassLong)

AlexMAN

Membre Club
Voila,

J'essaye de changer le curseur lorsk l'utilisateur survole un controle static, j'utilise (a linstar de BruNews) la fonction SetClassLong mais celle ci ne fonctionne pas, enfin elle renvoie une valeur non nulle, j'ai testé tous les param, tous sont initialisés, donc tt a l'air de fonctionner mais ca marche po !
je poste la fonction DlgProc :

LRESULT CALLBACK DlgProc(HWND hwndDlg, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
char sMsg[40];

switch (uMessage) {
case WM_INITDIALOG:
SetDlgItemText(hwndDlg, IDC_ABOUT, "Developpé par Alhexman\r\nAlhexman@tiscali.fr");
if (!SetClassLong(GetDlgItem(hwndDlg, IDC_ABOUT), GCL_HCURSOR, (long)LoadCursor(hInstDlg, (LPCTSTR)IDCUR_ABOUT))) {
MessageBox(NULL, "Erreur", "ERREUR", MB_OK);
return FALSE;
}
return FALSE;
case WM_COMMAND:
switch(wParam) {
case IDC_CLOSE:
EndDialog(hwndDlg, 0);
return TRUE;
case IDC_REDUCE:
SendMessage(hwndDlg, WM_SYSCOMMAND, SC_MINIMIZE, 0);
return TRUE;
case IDC_CHECK:
SetDlgItemText(hwndDlg, IDC_MAIL, "Vérification des mails...\r\n");
iInitWinsock();
iCheckMail();
if (iNbre_Msg > 1) {
sprintf(sMsg, "Vous avez %d nouveaux messages.\r\n", iNbre_Msg);
} else if (iNbre_Msg == 1) {
strcpy(sMsg, "Vous avez 1 nouveau message.\r\n");
} else if (!iNbre_Msg) {
strcpy(sMsg, "Vous n'avez pas de nouveaux messages.\r\n");
}
SetDlgItemText(hwndDlg, IDC_MAIL, sMsg);
return TRUE;
}

default:
return DefWindowProc(hwndDlg, uMessage, wParam, lParam);
}
}

Si kelkun pouvait m'aider, merci d'avance !

++

Alhexman
jeudi 3 juin 2004 à 17:15:02 | Re : Pb de changement de curseur (SetClassLong)

BruNews

Administrateur CodeS-SourceS
tes 'return' sont a l'envers:
WM_INITDIALOG doit retourner 1 pour bon positionnement du focus et quasi tous les autres ZERO.

hInstDlg ??? doit etre egal au 1er param de WinMain (HINSTANCE).

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 3 juin 2004 à 19:21:42 | Re : Pb de changement de curseur (SetClassLong)

AlexMAN

Membre Club
Ok j'ai trouvé en fait, il fallait specifier la propriété notify du static sur true...(pkoi ?)
Mais par contre, c vrai ke j'ai un ptit pb sur les valeurs kil faut retourner, si tu pouvais me donner un lien ou simplement m'expliker kel valeur mettre, jte remercie...
Et sinon, j'ai passé tout l'aprem avec une personne sur le chan #programmation a chercher pkoi, lorsk je crée la boite de dialogue IDD_DIALOG2, celle ci ne fonctionne pas, elle reste "glacée", si tu as deja rencontré ce type de pb, joré aimé avoir une explication paske jsuis o bord de la crise...
Jte remercie BruNews pour toute l'aide ke tu me fournis...

++

Alhexman
jeudi 3 juin 2004 à 19:31:29 | Re : Pb de changement de curseur (SetClassLong)

BruNews

Administrateur CodeS-SourceS
"glacée", KessAdir ???

faudrait voir le prob depuis son appel jusqu'a sa dlgProc, tant de possibilites.
Les valeurs a retourner sont toujours indiquees dans MSDN et Petzold l'explique clairement. Quand tu as un doute, suffit de regarder une source pour avoir bien souvent la solution.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 3 juin 2004 à 19:45:24 | Re : Pb de changement de curseur (SetClassLong)

AlexMAN

Membre Club
jte poste la dlgproc et l'appel (la creation de la dialog box) :

LRESULT CALLBACK OptionDlgProc(HWND hwndDlgOpt, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
char sBuffer[40];

switch (uMessage) {
case WM_COMMAND:
switch (wParam) {
case IDOK:
//Recupere le serveur pop
GetDlgItemText(hwndDlgOpt, IDE_POP, sPop, sizeof sPop);
//Recupere le nom d'utilisateur
GetDlgItemText(hwndDlgOpt, IDE_USER, sBuffer, sizeof sBuffer);
sprintf(sCmd[0], "USER %s\r\n", sBuffer);
//Recupere le mot de passe
GetDlgItemText(hwndDlgOpt, IDE_PASS, sBuffer, sizeof sBuffer);
sprintf(sCmd[1], "PASS %s\r\n", sBuffer);
EndDialog(hwndDlgOpt, 0);
break;
case IDCANCEL:
EndDialog(hwndDlgOpt, wParam);
break;
default:
return FALSE;
}
default:
return FALSE;
}

return TRUE;
}


et la creation ki se fait a partir de la dlgproc d'une autre dialog box :

case IDC_OPTION:
DialogBox(hInstDlg, (LPCTSTR)IDD_DIALOG2, hwndDlg, (DLGPROC)OptionDlgProc);
break;


Voila, j'ai bien regardé, mais j'espere ke tu trouvera kelk chose !

++

Alhexman


jeudi 3 juin 2004 à 20:06:29 | Re : Pb de changement de curseur (SetClassLong)

BruNews

Administrateur CodeS-SourceS
return TRUE; pour WM_INITDIALOG !!!
change deja cela.

ciao...
BruNews, Admin CS, MVP Visual C++
vendredi 4 juin 2004 à 08:39:27 | Re : Pb de changement de curseur (SetClassLong)

AlexMAN

Membre Club
Ca ne change rien, j'ai testé l'appel d'une messagebox, mais la aussi la msgbox reste glacé, sans pomper les ressources, donc le prog ne plante pas, mais il est impossible de cliker sur un bouton ni mm sur la 'croix'...
vendredi 4 juin 2004 à 20:52:31 | Re : Pb de changement de curseur (SetClassLong)

AlexMAN

Membre Club
J'ai trouvé mon "erreur", dans le

switch(Message) { ...
default:
return DefWindowProc(hwnd, message, wparam, lparam);

j'ai remplacé par return FALSE; et tt marche nickel...

Mais bon, c bizar car dans tt les tuts trouvé, jvoyais ca !

++

ALhexman
vendredi 4 juin 2004 à 20:57:35 | Re : Pb de changement de curseur (SetClassLong)

BruNews

Administrateur CodeS-SourceS
DefWindowProc sur une dialogbox ?!?! risquait effectivement pas d'aller.

ciao...
BruNews, Admin CS, MVP Visual C++


Cette discussion est classée dans : case, return, idc, hwnddlg, smsg


Répondre à ce message

Sujets en rapport avec ce message

ChooseColor bloqué ? [ par NeKoF ] Salut tous le monde !J'ai un gros soucis ma boite de dialogJe vous explique :Dans ma boite de configuration, je souhaite sélectionner une couleur en c Ecrir du texte dans un Edit [ par XKaliBur ] Voila avec ce code ça ecrit le texte dans EDIT1 mais le problème c'est que ça efface se qu'il y avait avant or je voudrais faire en sorte qu'il écirve Où est ce #!?\ de bug ? (projet MFC) [ par MasterShadows ] Salut à tous,j'vais exposer brièvement le problème, dans le projet que j'effectue (il est écrit en MFC (pas trop le choix d'ailleurs)) il faut que je recherche un texte spécifié....!!!! [ par mejdimm ] Salut tout le monde.!!!!!!je vous propose ici un code source : "recherche un texte spécifié" dans tous les fichiers texte de votre disque dur, l'utili C++ recherche un texte spécifié....!!!! [ par mejdimm ] Salut tout le monde.!!!!!! je vous propose ici un code source : "recherche un texte spécifié" dans tous les fichiers texte de votre disque dur, l'util Prise en charge des tabulations [ par SAKingdom ] Allo.Ceci est pour les membres club uniquement.Quand on clique sur la petite loupe à droite d'un fichier dans un zip, il ouvre une fenêtre individuell Caractere speciaux [ par mewa ] Voila g un petit probleme:Je dois creer un programme qui normalise en majuscule les caractere qui sont en miniuscule.Mai j ai un probleme avec les car Evenement touche presse sur edit [ par NairodDorian ] Bonjour,Je rencontre un petit blocage avec l'API Win32.BOOL CALLBACK AppDlg(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam){switch ( [vc++]Plusieurs boite de dialogues [ par shadow1779 ] Bonjour,mon probleme est avec visual c++ en C, si je fais plusieurs dialogbox avec l'editeur de ressource, le probleme est que quand j'en appel plusie


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,448 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales