begin process at 2012 05 29 10:40:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

edit text dans une fenetre et non une boite de dialogue


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

edit text dans une fenetre et non une boite de dialogue

mardi 18 mai 2010 à 10:57:52 | edit text dans une fenetre et non une boite de dialogue

gregroar


Bonjour, je n ai trouvé null part d exemple d edit dans une vraie fenêtre et non pas dans une boite de dialogue.
Aussi j ai essayé et j ai réussi.
Enfin plus ou moins, par ce que le texte ne se rafraichit pas quand on récrit ou corrige dans ce qu on a deja mis,
les lettre se surimpriment.
Quelqu'un voudrait bien m aider dans mon projet, je lui envoie ma source et il m'aide.
Si ca l intéresse de collaborer, ce serait vraiment trop trop trop aimable, par ce que je débute,
j apprend en autodidacte, de manière assez sporadique.
Et j ai un gros gros projet qui demanderait peut être une équipe pour que ca avance plus vite.
J'ai des idées, je commence a comprendre le c++, j ai du courage, du temps et de la determination.
Ca devrait aller.
Mais si quelqu un veut bien m aider pour mes petites questions ou pour collaborer, je serais vraiment reconnaissant.
Tcho!
mercredi 19 mai 2010 à 15:59:02 | Re : edit text dans une fenetre et non une boite de dialogue

racpp

Administrateur CodeS-SourceS
Salut,
Voici un code source dans lequel j'ai utilisé des edits dans une fenêtre:
UTILISATION-TOUCHES-TAB-ENTREE-ECHAP-DANS-FENETRE-WIN32
Les edits s'affichent exactement comme dans une boite de dialogue. L'erreur se trouve sûrement quelque part dans ton code.
jeudi 20 mai 2010 à 02:30:45 | Re : edit text dans une fenetre et non une boite de dialogue

gregroar

vraiment merci beaucoup pour ce code il est très clair et simple
mais ca se complique après.
J'ai déja réussi a faire ça avec des dlgbox,
mais ça marche pas la avec ton code de fenêtres je dois avoir un problème qqpart,
problème de conversion de types ça me dit,
enfin j ai essayé trop de trucs, j arrive pas a récupéré le texte tapé dans mon edit...
screugneugneu


voici le code je veux mettre l' edit1 dans l' edit2

hedit1=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
,5 ,cyClient-100 ,cxClient-30 ,40 ,hwnd,0,0,0);
hedit2=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL |ES_WANTRETURN
,5 ,20 ,cxClient-30 ,cyClient-150 ,hwnd,0,0,0);

---------------------------------------------------------------------------------------------------------------------------------------------------------
if((HWND)lParam==hok)
{
GetDlgItemText(hinst,hedit1,buf,256);
SetDlgItemText(hinst,hedit2,buf);
}
Ca serait pas mieux avec un vecteur que buffer?
JE DOIS METTRE QUOI A LA PLACE DE HINST J AI l impression d'avoir tout ESSAYé D OU VIENT MON PROBLEME?
jeudi 20 mai 2010 à 03:08:03 | Re : edit text dans une fenetre et non une boite de dialogue

gregroar

je vois déjà la question qui va suivre:
pour le traitement du texte entré, ensuite, j aimerais analyser chaque lettres du texte, comment je fais?
Je met tout dans un tableau de char?
char table [i][j]={0};
int i=0,J=0;
while pas caractere de fin de phrase
{
while pas espace
{
lire_lettre_suivante();
tabl [i][j]=lettre_lue
}i++;
}j++;
BREF PLEIN DE PETITES QUESTIONS BÊTES QUI ME PRENNENT LA TÊTE
bin oui je sais, c est du débutant, c'est la base!!
Mais j ai lu plusieurs bouquins et j arrive pas a mettre en pratique,
la seule chose qui m apprenne, c'est la pratique.
Je commence a bien arriver a dessiner dans une fenêtre, mais pour les édit et les traitements de texte et fichiers, je suis pas encore un boss.
Aidez moi s'il vous plait!! J'ai étudie plein de tutos, plein de livres, j ai juste besoin d un peu d explications.
ensuite chercher chaque mot dans le dico.txt (35MB) rangé alphabétiquement et regarder dedans si c est un verbe, un sujet, un adjectif
read file hfile un truc du genre, cette partie est à peu près réalisée...
jeudi 20 mai 2010 à 04:49:26 | Re : edit text dans une fenetre et non une boite de dialogue

gregroar


bon ba j ai trouvé ca sur msdn


Multiline modifier conseils boîte
Jusqu'à présent, il semble que WM_SETTEXT est le seul moyen de mettre les lignes en une zone d'édition multiligne. Si vous voulez faire cela, séparer les lignes par \ r \ n au sein de votre style de chaîne C. Il n'est pas nécessaire que le saut de ligne, mais le CRLF

exemple:

TCHAR tc [1000];
_stprintf (TC, TEXT ("Mary avait un \ petit agneau r \ nWhose toison était blanche comme \ neige r \ nEverywhere que Marie a \ r \ nLe agneau était sûr d'aller "));

SendMessage (editHwnd, WM_SETTEXT, 0, (LPARAM) tc); / / pour Windows Win32
SendMessage (GetDlgItem (hDlg, IDC_EDIT1), WM_SETTEXT, 0, (LPARAM) tc); / / exemple de dialogue

Ca marche pas nonplus
jeudi 20 mai 2010 à 10:14:39 | Re : edit text dans une fenetre et non une boite de dialogue

fregolo52

Membre Club
Ca ne marche pas !!! Bah ca va pas nous aider !!
Pour reprendre ton exemple posté à 2:30; je dirais plutot ca :

if((HWND)lParam==hok)
{
GetDlgItemText(hwnd,hedit1,buf,256);
SetDlgItemText(hwnd,hedit2,buf);
}

Si le hwnd qui est paramètre de CreateWindowEx est bien le handle de la fenetre.
jeudi 20 mai 2010 à 11:08:07 | Re : edit text dans une fenetre et non une boite de dialogue

gregroar


#include <windows.h>


#define IDC_Discussion 1100
#define IDC_UserDlg 1200
#define ID_A 1001
#define ID_B 1002
#define ID_C 1003
#define ID_D 1004
#define ID_E 1005
#define ID_F 1006
#define ID_G 1007
#define ID_H 1008
#define ID_I 1009
#define ID_J 1010
#define ID_K 1011
#define ID_L 1012
#define ID_M 1013
#define ID_N 1014
#define ID_O 1015
#define ID_P 1016
#define ID_Q 1017
#define ID_R 1018
#define ID_S 1019
#define ID_T 1020
#define ID_U 1021
#define ID_V 1022
#define ID_W 1023
#define ID_X 1024
#define ID_Y 1025
#define ID_Z 1026


















static int cxClient, cyClient ;
int cxScreen, cyScreen ;




LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int Select;
char buf[501];
HANDLE hFile;
DWORD Read;

static HWND hedit1,hedit2,hedit3,hlire,hquitter,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz; // Déclaration des variables en static:
switch(message)
{
// case WM_SIZE:
// cxClient = LOWORD (lParam)/2 ;
// cyClient = HIWORD (lParam)/2 ;
// return 0 ;
case WM_CREATE:
{
// Création des contrôles:
hedit1=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
,5 ,cyClient-100 ,cxClient-30 ,40 ,hwnd,0,0,0);
hedit2=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL |ES_WANTRETURN
,5 ,20 ,cxClient-30 ,cyClient-150 ,hwnd,0,0,0);
// hedit3=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP,20,100,100,20,hwnd,0,0,0);
hlire=CreateWindowEx(0,"button",">>>",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-55,cyClient-55,30,20,hwnd,(HMENU)IDOK,0,0);
hquitter=CreateWindowEx(0,"button","X",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,0,20,20,hwnd,(HMENU)IDCANCEL,0,0);

ha=CreateWindowEx(0,"button","A",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,40,20,20,hwnd,(HMENU)ID_A,0,0);
hb=CreateWindowEx(0,"button","B",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,60,20,20,hwnd,(HMENU)ID_B,0,0);
hc=CreateWindowEx(0,"button","C",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,80,20,20,hwnd,(HMENU)ID_C,0,0);
hd=CreateWindowEx(0,"button","D",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,100,20,20,hwnd,(HMENU)ID_D,0,0);
he=CreateWindowEx(0,"button","E",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,120,20,20,hwnd,(HMENU)ID_E,0,0);
hf=CreateWindowEx(0,"button","F",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,140,20,20,hwnd,(HMENU)ID_F,0,0);
hg=CreateWindowEx(0,"button","G",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,160,20,20,hwnd,(HMENU)ID_G,0,0);
hh=CreateWindowEx(0,"button","H",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,180,20,20,hwnd,(HMENU)ID_H,0,0);
hi=CreateWindowEx(0,"button","I",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,200,20,20,hwnd,(HMENU)ID_I,0,0);
hj=CreateWindowEx(0,"button","J",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,220,20,20,hwnd,(HMENU)ID_J,0,0);
hk=CreateWindowEx(0,"button","K",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,240,20,20,hwnd,(HMENU)ID_K,0,0);
hl=CreateWindowEx(0,"button","L",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,260,20,20,hwnd,(HMENU)ID_L,0,0);
hm=CreateWindowEx(0,"button","M",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,280,20,20,hwnd,(HMENU)ID_M,0,0);
hn=CreateWindowEx(0,"button","N",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,300,20,20,hwnd,(HMENU)ID_N,0,0);
ho=CreateWindowEx(0,"button","O",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,320,20,20,hwnd,(HMENU)ID_O,0,0);
hp=CreateWindowEx(0,"button","P",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,340,20,20,hwnd,(HMENU)ID_P,0,0);
hq=CreateWindowEx(0,"button","Q",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,360,20,20,hwnd,(HMENU)ID_Q,0,0);
hr=CreateWindowEx(0,"button","R",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,380,20,20,hwnd,(HMENU)ID_R,0,0);
hs=CreateWindowEx(0,"button","S",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,400,20,20,hwnd,(HMENU)ID_S,0,0);
ht=CreateWindowEx(0,"button","T",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,420,20,20,hwnd,(HMENU)ID_T,0,0);
hu=CreateWindowEx(0,"button","U",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,440,20,20,hwnd,(HMENU)ID_U,0,0);
hv=CreateWindowEx(0,"button","V",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,460,20,20,hwnd,(HMENU)ID_V,0,0);
hw=CreateWindowEx(0,"button","W",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,480,20,20,hwnd,(HMENU)ID_W,0,0);
hx=CreateWindowEx(0,"button","X",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,500,20,20,hwnd,(HMENU)ID_X,0,0);
hy=CreateWindowEx(0,"button","Y",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,520,20,20,hwnd,(HMENU)ID_Y,0,0);
hz=CreateWindowEx(0,"button","Z",WS_CHILD | WS_VISIBLE | WS_TABSTOP ,cxClient-10,540,20,20,hwnd,(HMENU)ID_Z,0,0);


HFONT font=(HFONT)GetStockObject(DEFAULT_GUI_FONT); // Changement de la police des contrôles:
HWND child=FindWindowEx(hwnd,0,0,0);
do
{
SendMessage(child,WM_SETFONT,(WPARAM)font,0);
child=FindWindowEx(hwnd,child,0,0);
}
while(child);
// Mettre le focus sur le premier EDIT:
SetFocus(hedit1);
return 0;
}
case WM_CLOSE:
// Détruire la fenêtre:
DestroyWindow(hwnd);
return 0;
case WM_DESTROY:
// Forcer la sortie de la boucle des messages:
PostQuitMessage(0);
return 0;
case WM_COMMAND:
// Clic sur le bouton Ok ou appui sur la touche ENTREE:
if((HWND)lParam==hlire)
{
///du coup j met des ptits //pour éviter que ca fouare ICI : les 2 lignes qui suivent
GetDlgItemText(hwnd,hedit1,buf,256);
SetDlgItemText(hwnd,hedit2,buf);


}
// Clic sur le bouton Quitter ou appui sur la touche ECHAP:
if((HWND)lParam==hquitter)SendMessage(hwnd,WM_CLOSE,0,0);
return 0;
default:
break;
}
// Appeler la procedure par défaut de la fenêtre:
return DefWindowProc(hwnd,message, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprev, LPSTR cmd, int show)
{
cxScreen = GetSystemMetrics (SM_CXSCREEN); cyScreen = GetSystemMetrics (SM_CYSCREEN)-35 ;
cxClient= cxScreen/4; cyClient= cyScreen-200;
// Déclaration et initialisation de la structure WNDCLASSEX:
WNDCLASSEX wc;
ZeroMemory(&wc,sizeof(WNDCLASSEX));
wc.cbSize=sizeof(WNDCLASSEX);
wc.hInstance=hinst;
wc.lpszClassName="fenetre";
wc.lpfnWndProc=WinProc;
wc.hCursor=LoadCursor(0,IDC_ARROW);
wc.hIcon=LoadIcon(0,IDI_APPLICATION);
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//////////////////////////LTGRAY
// Enregistrement de notre classe de fenêtre:
RegisterClassEx(&wc);
// Création de notre fenêtre:


HWND hwnd=CreateWindowEx(WS_EX_TOPMOST| WS_EX_WINDOWEDGE ,"fenetre","Dialogue",WS_SYSMENU | WS_VISIBLE ,///////////////////|WS_EX_TOOLWINDOW
0,0,499,cyScreen,
0,0,hinst,0);

HRGN rect_rnd = CreateRoundRectRgn(5, 18, cxClient+14, cyClient-1, 50, 50);
SetWindowRgn(hwnd, rect_rnd, TRUE);




// Boucle des messages:
MSG msg;

while(GetMessage(&msg,0,0,0)){if(!IsDialogMessage(hwnd,&msg)){DispatchMessage(&msg);TranslateMessage(&msg);}}
// Sortie du programme:
return 0;
}

jeudi 20 mai 2010 à 16:38:23 | Re : edit text dans une fenetre et non une boite de dialogue

racpp

Administrateur CodeS-SourceS
Tu as oublié d'affecter les identificateurs à tes edits.
Ajoute la définition des identificateurs comme ceci:
#define ID_EDIT1 1027
#define ID_EDIT2 1028

Puis affecte ces identificateurs à tes edits dans CreateWindowEx() en 10ème paramètre:
hedit1=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
,5 ,cyClient-100 ,cxClient-30 ,40 ,hwnd,(HMENU)ID_EDIT1,0,0);
hedit2=CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL |ES_WANTRETURN
,5 ,20 ,cxClient-30 ,cyClient-150 ,hwnd,(HMENU)ID_EDIT2,0,0);

Enfin dans ta WindProc tu fais:
case WM_COMMAND:
// Clic sur le bouton Ok ou appui sur la touche ENTREE:
if((HWND)lParam==hlire)
{
GetDlgItemText(hwnd,ID_EDIT1,buf,256);
SetDlgItemText(hwnd,ID_EDIT2,buf);
}
// Clic sur le bouton Quitter ou appui sur la touche ECHAP:
if((HWND)lParam==hquitter)SendMessage(hwnd,WM_CLOSE,0,0);
return 0;

Si tu veux travailler directement avec les HWNDs des edits utilise GetWindowText() et SetWindowText().
Je viens de tester ton code corrigé et ça marche parfaitement.
vendredi 21 mai 2010 à 00:07:16 | Re : edit text dans une fenetre et non une boite de dialogue

gregroar


Merciiiiiiiiiiiiiiii


Cette discussion est classée dans : text, edit, boite, trop, dialogue


Répondre à ce message

Sujets en rapport avec ce message

Edit box [ par agora_13 ] Bonjour,J'ai une boite de dialogue dans mon application que j'affiche une première fois avec seulement 2 edit box grisées que j'ai grisée moi meme en police d'edit de boite de dialogue [ par by_rabbit_08 ] Bonsoir!J'ai une boite de dialogue, crée dans un fichier resource, dans la quelle j'ai un edit. Comment est-ce que je fais changer la police de cet ed utilisation setwindowtext pour afficher sur une boite de dialogue [ par eklouste ] Slt a tousEn fait j'ai cree deux boite de dialogue A et B. Je veux recuperer du texte du control edit  de boite de dialogue A et l'afficher ce texte   ecrire dans un edit box en MFC [ par eklouste ] Slt a tous En fait j'ai cree une boite de dialogue avec MFC application ainsi qu'un edit control dans la boite de dialogue. J'aimerais savoir comment Transfert data entre boite de dialogue [ par eklouste ] salutJe travaille en MFC et j'aimerai utiliser une donnée rentrée dans une première boite dedialogue et l'utiliser (ou dans un premier temps l'affiche Le programme ne répond pas. [ par mohdaef ] Bonsoir.J'ai fait un petit programme en boite de dialogue dans lequel, lors d'un appui sur un bouton une fonction est lancée. Cette fonction contient Boite de dialogue [ par Witchblade ] J'ai une autre petite question comment puije faire pour créer un dialogue entre 2 boite de dialogue.je m'explique:J'ai une boite de dialogue dans laqu recupere du tette de l'editeur de texte d'une boite de dialogue et l'afficher sur une autre boite de dialogue [ par eklouste ] Slt Je suis debutant en visual c++ et j'aimerais savoir par exemple comment recuperer du texte dans l'editeur de texte d'une boite de dialogue et l'af boite de dialogue c++ avec onglet [ par azzo13 ] Bonjour tout le monde, je suis debutant en C++ et j'aimerai simplement faire un code qui me genere une fenetre avec un onglet quitter par exemple et u Ouvrir une boite de dialogue [ par yuyunho ] Bonjour,Je code en c++ sous visual studio 2008 et je veux tout simplement passer de ma fenetre principale à ma 2ème boite de dialogue en remplacant la


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 : 1,888 sec (3)

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