IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Zone de saisie de texte


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut Zone de saisie de texte
    Est ce que quelqu'un pourrait m'aider svp, je doit r�aliser un projet en application Windows C++ et dans une parti de ma fenetre (deja cr�e) je doit y mettre un champ de saisi d'un texte et aussi l'affichage/modification d'un fichiertexte dans une autre partie ce cette fenetre. Mais le probl�me est que:
    - je n'arrive pas cr�e ce champ de saisi de texte
    - je n'arrive pas ins�rer cette zone d'affichage/modification du fichier texte.
    Merci de votre aide.

  2. #2
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par d�faut Qui cherche trouve
    Bonjour

    Il y a ce site qui fourni quelques tutoriels sur la programmation windows ( en macro assembleur mais bon ... c'est la logique et les explication qui compte )
    http://win32assembly.online.fr/tutorials.html

    Et �galment : Tutoriel API windows

    Sans oublier http://msdn.microsoft.com

    Dev-C++ fourni cette exemple en C
    Code Menu.rc : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include "Main.h"
     
    MAINMENU MENU 
    {
     POPUP "&File"
     {
      MENUITEM "&Open...", CM_FILE_OPEN
      MENUITEM "Save &As...", CM_FILE_SAVEAS
      MENUITEM SEPARATOR
      MENUITEM "E&xit", CM_FILE_EXIT
     }
     
     POPUP "&Help"
     {
      MENUITEM "&About", CM_ABOUT
     }
    }
    Code Main.h : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    #define CM_FILE_SAVEAS	9072
    #define CM_FILE_EXIT	9071
    #define CM_FILE_OPEN	9070
    #define CM_ABOUT        9069
    Code Main.c : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    #include <windows.h>
    #include "Main.h"
     
    static char g_szClassName[] = "MyWindowClass";
    static HINSTANCE g_hInst = NULL;
     
    #define IDC_MAIN_TEXT   1001
     
    BOOL LoadFile(HWND hEdit, LPSTR pszFileName)
    {
       HANDLE hFile;
       BOOL bSuccess = FALSE;
     
       hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
          OPEN_EXISTING, 0, 0);
       if(hFile != INVALID_HANDLE_VALUE)
       {
          DWORD dwFileSize;
          dwFileSize = GetFileSize(hFile, NULL);
          if(dwFileSize != 0xFFFFFFFF)
          {
             LPSTR pszFileText;
             pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
             if(pszFileText != NULL)
             {
                DWORD dwRead;
                if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
                {
                   pszFileText[dwFileSize] = 0; // Null terminator
                   if(SetWindowText(hEdit, pszFileText))
                      bSuccess = TRUE; // It worked!
                }
                GlobalFree(pszFileText);
             }
          }
          CloseHandle(hFile);
       }
       return bSuccess;
    }
     
    BOOL SaveFile(HWND hEdit, LPSTR pszFileName)
    {
       HANDLE hFile;
       BOOL bSuccess = FALSE;
     
       hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0,
          CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
       if(hFile != INVALID_HANDLE_VALUE)
       {
          DWORD dwTextLength;
          dwTextLength = GetWindowTextLength(hEdit);
          if(dwTextLength > 0)// No need to bother if there's no text.
          {
             LPSTR pszText;
             pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1);
             if(pszText != NULL)
             {
                if(GetWindowText(hEdit, pszText, dwTextLength + 1))
                {
                   DWORD dwWritten;
                   if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))
                      bSuccess = TRUE;
                }
                GlobalFree(pszText);
             }
          }
          CloseHandle(hFile);
       }
       return bSuccess;
    }
     
    BOOL DoFileOpenSave(HWND hwnd, BOOL bSave)
    {
       OPENFILENAME ofn;
       char szFileName[MAX_PATH];
     
       ZeroMemory(&ofn, sizeof(ofn));
       szFileName[0] = 0;
     
       ofn.lStructSize = sizeof(ofn);
       ofn.hwndOwner = hwnd;
       ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
       ofn.lpstrFile = szFileName;
       ofn.nMaxFile = MAX_PATH;
       ofn.lpstrDefExt = "txt";
     
       if(bSave)
       {
          ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY |
             OFN_OVERWRITEPROMPT;
     
          if(GetSaveFileName(&ofn))
          {
             if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
             {
                MessageBox(hwnd, "Save file failed.", "Error",
                   MB_OK | MB_ICONEXCLAMATION);
                return FALSE;
             }
          }
       }
       else
       {
          ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
          if(GetOpenFileName(&ofn))
          {
             if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
             {
                MessageBox(hwnd, "Load of file failed.", "Error",
                   MB_OK | MB_ICONEXCLAMATION);
                return FALSE;
             }
          }
       }
       return TRUE;
    }
     
    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
       switch(Message)
       {
          case WM_CREATE:
             CreateWindow("EDIT", "",
                WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE |
                   ES_WANTRETURN,
                CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL);
     
             SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,
                (WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));
          break;
          case WM_SIZE:
             if(wParam != SIZE_MINIMIZED)
                MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),
                   HIWORD(lParam), TRUE);
          break;
          case WM_SETFOCUS:
             SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT));
          break;
          case WM_COMMAND:
             switch(LOWORD(wParam))
             {
                case CM_FILE_OPEN:
                   DoFileOpenSave(hwnd, FALSE);
                break;
                case CM_FILE_SAVEAS:
                   DoFileOpenSave(hwnd, TRUE);
                break;
                case CM_FILE_EXIT:
                   PostMessage(hwnd, WM_CLOSE, 0, 0);
                break;
                case CM_ABOUT:
                   MessageBox (NULL, "File Editor for Windows !\n Using the Win32 API" , "About...", 0);
             }
          break;
          case WM_CLOSE:
             DestroyWindow(hwnd);
          break;
          case WM_DESTROY:
             PostQuitMessage(0);
          break;
          default:
             return DefWindowProc(hwnd, Message, wParam, lParam);
       }
       return 0;
    }
     
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpCmdLine, int nCmdShow)
    {
       WNDCLASSEX WndClass;
       HWND hwnd;
       MSG Msg;
     
       g_hInst = hInstance;
     
       WndClass.cbSize        = sizeof(WNDCLASSEX);
       WndClass.style         = 0;
       WndClass.lpfnWndProc   = WndProc;
       WndClass.cbClsExtra    = 0;
       WndClass.cbWndExtra    = 0;
       WndClass.hInstance     = g_hInst;
       WndClass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
       WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
       WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
       WndClass.lpszMenuName  = "MAINMENU";
       WndClass.lpszClassName = g_szClassName;
       WndClass.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);
     
       if(!RegisterClassEx(&WndClass))
       {
          MessageBox(0, "Window Registration Failed!", "Error!",
             MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
          return 0;
       }
     
       hwnd = CreateWindowEx(
          WS_EX_CLIENTEDGE,
          g_szClassName,
          "File Editor Example Program",
          WS_OVERLAPPEDWINDOW,
          CW_USEDEFAULT, CW_USEDEFAULT, 320, 240,
          NULL, NULL, g_hInst, NULL);
     
       if(hwnd == NULL)
       {
          MessageBox(0, "Window Creation Failed!", "Error!",
             MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
          return 0;
       }
     
       ShowWindow(hwnd, nCmdShow);
       UpdateWindow(hwnd);
     
       while(GetMessage(&Msg, NULL, 0, 0))
       {
          TranslateMessage(&Msg);
          DispatchMessage(&Msg);
       }
       return Msg.wParam;
    }
    Tu aurra plus d'aide l� http://www.developpez.net/forums/forumdisplay.php?f=16 et tu y trouvera des tuto etc ...
    Ce sous-forum est plus pour la syntaxe du C++ je crois

    Bon courage et bonne lecture @_@

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    Merci de cette r�ponse, j'ai deja essayer de m'inspir� de cette exemple fourni avec Dec-C++ mais le probleme est que ce programme cr�e la fenetre de texte mais moi je cherche a ins�rer une zone de texte dans une fenetre deja existante (car ma fenetre ne fait pas que sa) et non pas une fenetre dans une autre.
    Et pour mon autre petit probl�me, je cherche juste a ins�r� un champ de saisie de texte (comme on peut le voit sur de exemple de calculatrice) dans la meme fenetre que precedement (vous aller me dire de copier l'exemple de la calculatrice mais j'ai deja essayer et cela ne fonctionne pas).
    Je cherche donc la fonction (probablement interne au biblioth�que C ou C++) qui me permet d'ins�rer ce champ de saisi et cette zonne de texte.
    Merci bcp.

  4. #4
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par d�faut
    Tu a deja tout lu

    Domage que tu n'ai pas lu le tutoriel N� 9 de iczelion's (cadeau : en francais )

    [edit]
    Je cherche donc la fonction qui permet d'ins�rer un champ de saisi
    CreateWindow, ou CreateWindowEx pour cr�er des boutons, des input ...
    [/edit]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    Merci beaucoup de ton aide mais j'aurait encore besoin de tes lumi�res sur un petit point, j'arrive mainetnant a ins�rer une zone de saisi mias quand je clique en dehors de cette zone le curseur reste dans la zone et je ne peut plus rien faire dans la fen�tre (car je doit pouvoir appuyer sur une touche et la fenetre doit r�pondre en faisant autre chose (sa c'est d�j� fait) mais une fois dans la zone, quand je tape sur les touche qui doivent agir sur la fen�tre les lettre s'�crivent dans la zone), je voudrait �galement pouvoir savegarder dans une chaine de caract�re ce que je tape dans la zone de saisi.
    J'�sp�re avoir �tait clair dans mon probl�me.
    Merci.

Discussions similaires

  1. Zone de saisie de texte format� dans Swing
    Par mugwump dans le forum AWT/Swing
    R�ponses: 8
    Dernier message: 25/09/2012, 06h39
  2. Xcelsius2008 - Composant Zone de saisie de texte
    Par niafron71 dans le forum Launchpad (ex-Infoview)
    R�ponses: 1
    Dernier message: 12/09/2012, 14h55
  3. vider une zone de saisie de texte
    Par naim2009 dans le forum Interfaces Graphiques
    R�ponses: 2
    Dernier message: 17/01/2009, 21h32
  4. zone de saisie de texte
    Par houwa dans le forum SDL
    R�ponses: 4
    Dernier message: 22/04/2008, 11h08
  5. Probl�me pour ajouter un texte automatique dans un zone de saisie de texte
    Par koKoTis dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 6
    Dernier message: 21/08/2006, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo