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

C

 > 

Windows

 > 

Autre

 > 

Problème lecture du texte d'une textbox (API Windows)


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

Problème lecture du texte d'une textbox (API Windows)

mercredi 22 juillet 2009 à 12:05:06 | Problème lecture du texte d'une textbox (API Windows)

Inceptor

Bonjour,

Je suis en train de développer un petit programme très simple, celui doit doit générer un fichier à partir des données entrées. L'interface du programme contient 7 textbox et un bouton qui permet de générer le fichier avec des tags (pour séparer les différents textes).

Je n'arrive pas à récupérer le texte des textbox (j'utilise getwindowstext), j'ai déjà pas mal chercher sur d'autre forum des réponses mais il me semble que ma façon de faire est correcte...

Voici mon code:

Code :

#include <windows.h>
#include <stdio.h>
#include <shlobj.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
#include <tchar.h>
#include "constantes.h"


using namespace std;

// Instance principale
HINSTANCE instance;

// Déclatation des fontions
LRESULT CALLBACK procedureFenetrePrincipale(HWND, UINT, WPARAM, LPARAM);

// Boucle principale du programme
int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance,LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
MSG message;
WNDCLASS classeFenetre;

instance = cetteInstance;

classeFenetre.style = 0;
classeFenetre.lpfnWndProc = procedureFenetrePrincipale;
classeFenetre.cbClsExtra = 0;
classeFenetre.cbWndExtra = 0;
classeFenetre.hInstance = NULL;
classeFenetre.hIcon = LoadIcon(NULL, IDI_APPLICATION);
classeFenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
classeFenetre.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
classeFenetre.lpszMenuName = NULL;
classeFenetre.lpszClassName = "classeF";

// On prévoit quand même le cas où ça échoue
if(!RegisterClass(&classeFenetre)) return FALSE;

// Création de la fenêtre principale
fenetrePrincipale = CreateWindow("classeF", "ANS News Selection", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 600,
NULL, LoadMenu(instance, "ID_MENU"), cetteInstance, NULL);
if (!fenetrePrincipale) return FALSE;

ShowWindow(fenetrePrincipale, modeDAffichage);
UpdateWindow(fenetrePrincipale);


// Boucle d'attente d'un événement
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}

LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND boutons[2] = {NULL};

switch (message)
{
case WM_CREATE:
boutons[0] = CreateWindow("BUTTON", "Générer la news et l'envoyer", WS_CHILD | WS_VISIBLE,
10, 520, 380, 30, fenetrePrincipale, (HMENU)ID_B_GENERER, instance, NULL);
// TIME
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Date et Heure:",WS_VISIBLE | WS_CHILD,
10,10,100,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hTime;
hTime=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","aaaammjj hhmm", WS_CHILD | WS_VISIBLE,
125,10,120,20,fenetrePrincipale,(HMENU)ID_T_TIME,NULL,NULL );
// TITRE
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Titre:",WS_VISIBLE | WS_CHILD,
10,70,60,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hTitre;
hTitre=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE,
70,70,320,20,fenetrePrincipale,(HMENU)ID_T_TITRE,NULL,NULL );
// PAYS
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Pays:",WS_VISIBLE | WS_CHILD,
10,40,35,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hPays;
hPays=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE,
70,40,90,20,fenetrePrincipale,(HMENU)ID_T_PAYS,NULL,NULL );
// ENGAGEMENT
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Engagement:",WS_VISIBLE | WS_CHILD,
170,40,90,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hEngagement;
hEngagement=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE,
270,40,120,20,fenetrePrincipale,(HMENU)ID_T_ENGAGEMENT,NULL,NULL );
// SOURCE
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Source:",WS_VISIBLE | WS_CHILD,
10,130,50,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hSource;
hSource=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE,
70,130,90,20,fenetrePrincipale,(HMENU)ID_T_SOURCE,NULL,NULL );
// URL
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","URL:",WS_VISIBLE | WS_CHILD,
10,100,30,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hUrl;
hUrl=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE,
70,100,320,20,fenetrePrincipale,(HMENU)ID_T_URL,NULL,NULL );
// TEXTE
CreateWindowEx(WS_EX_WINDOWEDGE,"Static","Texte en entier:",WS_VISIBLE | WS_CHILD,
10,160,380,20,fenetrePrincipale,NULL,NULL,NULL );
HWND hTexte;
hTexte=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","", WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL | ES_AUTOVSCROLL | WS_THICKFRAME,
10,180,380,330,fenetrePrincipale,(HMENU)ID_T_TEXTE,NULL,NULL );

return 0;

case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_B_APROPOS:
MessageBox(fenetrePrincipale, "ANS News Selection\nVersion 0.9\nANZ 2009", "ANS News Selection", MB_ICONINFORMATION);
break;

case ID_B_GENERER:

// Ecriture fichier news
FILE* fichier;
fichier = fopen("test.ans", "w");

char texte[MAXOUT] ;

// TIME GetWindowWord(hTime,10000)
GetWindowText(hTime,texte,MAXOUT);
fprintf(fichier, "<*tag_time*>\n%s\n</*tag_time*>\n",texte);

// TITRE GetWindowWord(hTitre,10000)
GetWindowText(hTitre,texte,MAXOUT);
fprintf(fichier, "<*tag_titre*>\n%s\n</*tag_titre*>\n",texte);

// PAYS
GetWindowText(hPays,texte,MAXOUT);
fprintf(fichier, "<*tag_pays*>\n%s\n</*tag_pays*>\n",texte);

// ENGAGEMENT
GetWindowText(hEngagement,texte,MAXOUT);
fprintf(fichier, "<*tag_engagement*>\n%s\n</*tag_engagement*>\n",texte);

// SOURCE
GetWindowText(hSource,texte,MAXOUT);
fprintf(fichier, "<*tag_source*>\n%s\n</*tag_source*>\n",texte);

// TEXTE
GetWindowText(hTexte,texte,MAXOUT);
fprintf(fichier, "<*tag_texte*>\n%s\n</*tag_texte*>\n",texte);

// URL
GetWindowText(hUrl,texte,MAXOUT);
fprintf(fichier, "<*tag_url*>\n%s\n</*tag_url*>",texte);


fclose(fichier);

MessageBox(fenetrePrincipale, "La news a été envoyé à ANS Database", "ANS News Selection", MB_ICONINFORMATION);
break;

case ID_B_PARAMETRE:
MessageBox(fenetrePrincipale, "param", "ANS News Selection", MB_ICONINFORMATION);
break;

case ID_B_QUITTER:
SendMessage(fenetrePrincipale, WM_DESTROY, 0, 0);
break;
}
return 0;

case WM_DESTROY:
PostQuitMessage(0);
return 0;

default:
return DefWindowProc(fenetrePrincipale, message, wParam, lParam);
}
}





J'espère que vous aller pourvoir trouver mon erreur, qui doit sans doute être toute bête...


Merci d'avance

mercredi 22 juillet 2009 à 13:19:03 | Re : Problème lecture du texte d'une textbox (API Windows)

Inceptor

Problème résolu!!!

Il faut mettre les créations de bouton et de textbox dans la boucle winmain, le "WM_CREATE" crée les problèmes...



Cette discussion est classée dans : texte, visible, ws, child, fenetreprincipale


Répondre à ce message

Sujets en rapport avec ce message

problème avec CreateWindow [ par clad67150 ] Bonjour, voilà j'ai un petit problème avec CreateWindow(), je m'en sers pour créer des boutons mais au bout de 5 ou 6 boutons certains sont créés avec Comment faire un \n dans un edit? [ par by_rabbit_08 ] Bonjour!Grâce à la fonction SetDlgItemText, je cherche à inscrire du texte dans un edit. Dans ce texte, il y a un \n pour un retour à la ligne.Mais lo Fenêtre CHILD [ par yserver ] BonjourUne petite question. J'ai une fenêtre avec des contrôles definie à l'interieur comme suit:hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLA Effacer un static (texte) sur un static (image) ? [ par supergrey ] Bonjour, j'affiche un texte par dessus une image dans une dialog, mais quand je modifie le texte, l'ancien texte reste affiché.Je sais que la question [ API WIN32 ] RECUPERER APPUI BOUTON FENETRE [ par lectpe ] Bonjour, J'ai créé une boite de dialogue vide grâce aux ressources comme suit :IpToCountryDialog DIALOG 50, 30, 165, 80            STYLE WS_POPUP | WS MFC editeur de texte [ par hobbes ] Bonjour,je suis entrain d essayer de faire un editeur de texte avec les MFC. Pour le moment, je peux ecrire du texte dans une fenetre mais je ne vois texte owner draw [ par anthraxx ] j'ai un petit problème:mon controle "static text" qui est "owner draw" semble ne pas exister quand j'utilise WM_SETTEXT ou SetWindowText pour mettre à Scrollbar automatique [ par Gabi ] C'est que vous voyez je suis en train de faire un chat. Il est en API Windows. Pour afficher le texte qui est dit j'utilise un EDIT avec ces flags : W Changer le texte dans la barre des titres (Win32 API) [ par Viper31 ] Salut tout le monde !!J aimerai savoir si quelqu'un sait comment changer le texte dans la barre des titres (caption) sachant que ma fenetre est une bo radiobutton dans groupebox [ par dyroj ] Mes salutation a touse,Je voudrais grouper des radiobutton dans un groupebox de maniere a ce que quand je click sur un radiobutton il se coché celui q


Nos sponsors


Sondage...

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 : 4,259 sec (3)

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