2fear
Messages postés14Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 11:17
2fear
Messages postés14Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 17:39
Bonjour,
Je suis actuelement en train de réaliser un jeu de Taquin sous Visual.
J'ai deja reussi a coder la generation aleatoire des cases pour une solution soluble et le déplacement des chiffres
Voici un ptit screen pour vous faire une idée
Les cases sont des EDIT CONTROL qui changent de valeur.
Ce que je voudrais faire c'est supprimer la bordure si l'EDIT CONTROL affiche 0, et la rétablir dans le cas contraire.
Voici un extrait de mon code. (quand je clique sur la Case1, en haut a gauche )
void CSolitechDlg::OnEnSetfocusEditCase1()
{
int m_CaseT; // Création d'une case de transition fictive. Puis inversement des cases.
if ( m_Case2 == 0)
{
m_CaseT = m_Case2;
m_Case2 = m_Case1;
m_Case1 = m_CaseT;
m_NClic = m_NClic + 1;
}
void CSolitechDlg::OnEnSetfocusEditCase1()
{
int m_CaseT; // Création d'une case de transition fictive. Puis inversement des cases.
if ( m_Case2 == 0)
{
m_CaseT = m_Case2;
m_Case2 = m_Case1;
m_Case1 = m_CaseT;
m_NClic = m_NClic + 1;
Apres je supprime la bordure de la Case1 et rétablie celle de la Case2 (WS_BORDER ???)
Voila, c'est assez important vu que c'est mon projet info
Je trouve deja dans mon Solitech.rc les propriétés de mes EDIT CONTROL
Voici celui reprensente le nombre de deplacements (voir screen) NOT WS_BORDER indique qu'il ne possede pas de bordure (revoir screen lol)
EDITTEXT IDC_EDIT_NClic,119,48,16,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
Mais comment faire pour arriver à changer les propriétes d'un EDIT CONTROLE dans une fonction ... ?
LONG ancienstyle = GetWindowLong(hwndedit, GWL_STYLE);
LONG nouveaustyle;
nouveaustyle = ancienstyle & ~WS_BORDER;
// enlever la bordure
//nouveaustyle = ancienstyle | WS_BORDER; // ajouter la bordure
SetWindowLong(hwndedit, GWL_STYLE, nouveaustyle);
Je ne vois pas trop a quoi ca pourrait correspondre ...
Je prog sous Visual .Net 2005, et la seule commande qu'il me sort commencant par hwnd c'est hwndedit.
Ca a changé ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
2fear
Messages postés14Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention25 mai 20071 25 mai 2007 à 15:03
Désolé de poster à la suite, mais on ne peut pas éditer.
hwnd : "handle to dialog box" (sous windows, toute fenêtre est identifiée par un "handle" qui est en fait en entier long)
=> identificateur du dialogue dans lequel se trouve ton edit box
#define IDC_EDIT_Case9 1008
Je pensais que c'etait le 1008, mais non, ça n'a pas l'air d'être ça ...
J'ai essayé un tas de bidouillage, je ne vois pas comment faire.
2fear
Messages postés14Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention25 mai 20071 25 mai 2007 à 16:27
J'y arrive pas justement :'(
Erreur 1 error C2664: 'CWnd::FindWindowW' : impossible de convertir le paramètre 2 de 'const char [9]' en 'LPCTSTR' c:\Documents and Settings\makbouli\Bureau\Solitech\Solitech\SolitechDlg.cpp 531
Erreur 2 error C2664: 'void CWnd::GetDlgItem(int,HWND *) const' : impossible de convertir le paramètre 1 de 'HWND' en 'int' c:\Documents and Settings\makbouli\Bureau\Solitech\Solitech\SolitechDlg.cpp 532
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 25 mai 2007 à 17:23
Il parait que tu travailles avec les MFCs. Moi je préfère travailler directement avec les APIs Windows.
Mon code est normalement facilement adaptable aux MFCs.
Il parait aussi que tu travailles en UNICODE. Dans ce cas il faut faire:
HWND hwndDlg=FindWindow(0,TEXT("Solitech"));
Pour l'erreur N°2, il parait que les paramètres de GetDlgItem() sont inversés en MFC. En Api, voici son prototype:
GetDlgItem(HWND, int);
Tu peux pas utiliser directement ces fonctions sans passer par CWnd?
2fear
Messages postés14Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention25 mai 20071 25 mai 2007 à 17:39
Oui, désolé, j'ai oublié de préciser que j'etais en MFC. Ce n'est pas un choix, c'est imposé.
Je ne vois pas du tout à quoi ca correspond, mais voila ce que m'indique Visual. Qu'en penses tu ?