SergentP
Messages postés20Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention25 juillet 2010
-
30 juin 2008 à 18:54
cs_lol55
Messages postés86Date d'inscriptiondimanche 8 janvier 2006StatutMembreDernière intervention 5 décembre 2010
-
18 juil. 2008 à 22:11
Salut,
J'ai créer une fenêtre avec un edit box et je cherche à le redimensionner lorsque un WM_SIZING est envoyé, pour cela jutilise SetWindowPos comme ceci :
SetWindowPos( EditText_Bas, 0,
RectWindow.left, // Position de départ
RectWindow.top, // ...
RectWindow.right, // ...
RectWindow.bottom - Diff.bottom, 0); // Position de départ - la différence apres le WM_SIZING
La compilation se passe bien mais lorsque je redimentione l'edit box disparait.
Je n'arrive pas à trouver de réponse à ce probleme donc j'espere trouver une solution de votre par.
Merci d'avance.
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_BUTTON:
SetWindowPos(
hEditBox,
0,
0,
0,
80,
25,
SWP_NOMOVE
);
break;
}
return 0;
Lorsque je clique sur le bouton Click, les dimensions de l'EditBox sont bien modifiées, la fonction SetWindowPos fonctionne donc bien.
Je relis ton premier post et je vois les paramtres que tu utilises :
SetWindowPos( EditText_Bas, 0,
RectWindow.left, // Position de départ
RectWindow.top, // ...
RectWindow.right, // ...
RectWindow.bottom - Diff.bottom, 0); // Position de départ - la différence apres le WM_SIZING
Je pense donc que ton problème viens simplement des paramètres de dimensions que tu utilises, il doit peut-être y en avoir des négatives... ce qui fais que ton EditBox n'est plus affichée, ce qui est normal !
Montre moi ton code source dans un fichier .cpp; j'essaierais de corriger ton problème en utilisant les bons paramètres.
SergentP
Messages postés20Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention25 juillet 2010 1 juil. 2008 à 20:18
Pas moyen j'ai essayé plusieurs flags mais la fenetre disparait toujours, j'ai donc essayé de mettre des coordonées au hazard et la la fenetre ne disparaisait pas donc je supose que ca vien de la maniere d'ont je passe les coordonées.
cs_lol55
Messages postés86Date d'inscriptiondimanche 8 janvier 2006StatutMembreDernière intervention 5 décembre 2010 7 juil. 2008 à 15:04
Salut SergentP,
Pour redimensionner un EditBox, j'utiliserai le message EM_SETRECT qui permet comme tu peux le lire dans la description des paramètres à passer, de modifier ses dimensions :
* lParam : A pointer to a RECT structure that specifies the new dimensions of the
rectangle. If this parameter is NULL, the formatting rectangle is set
to its default values.
Voici le page, sur la MSDN : http://msdn.microsoft.com/en-us/library/bb761657(VS.85).aspx (Pour déclarer ton nouveau RECT => http://msdn.microsoft.com/en-us/library/ms536136.aspx) Donc en faisant :
RECT rRect;
rRect.top = ...
... // Tu déclares les dimensions (top, bottom, left et right)
SendMessage(hHandleTonEditBox, EM_SETRECT, 0, rRect);
Dans la page de la MSDN, tu peux trouver des choses intéressantes comme dans la remarque :
The EM_SETRECT message causes the text of the edit control to be
redrawn. To change the size of the formatting rectangle without
redrawing the text, use the EM_SETRECTNP message.
SergentP
Messages postés20Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention25 juillet 2010 7 juil. 2008 à 19:37
En fait oui cela venait des parametres de dimentions et pensse que c'est à cause du RECT car il a pour parametre : left, top, right, bottom
et SetWindowPos ou MoveWindow : left, top, width, height
Ce qui créer des problemes.