?faire une toute petite applic/ C en "API windows"

Résolu
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008 - 8 déc. 2006 à 19:42
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 14 déc. 2006 à 19:53
Salut à tous, voilà j'ai souvent programmé en C sous DOS, c'est démodé et ringard, je débute à peine avec l'api windows, ce n'est pas trés évident pour le moment , mais je commence à m'habituer.
Question: comment pourrais-je faire une tout petit morceau de code genre "je rentre une valeur (val), et en appuyant sur un bouton j'obtient dans la fenëtre (val au carré)?
Merci.

19 réponses

etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
8 déc. 2006 à 20:41
jai' consulté le tuto, mais il n'y a pas d'exemple sur ce que je veux, ça me frustre ce truc.
ce qu'il y a dans le tuto, c'est des choses trés générales, il n'y a pas d'application proprement dite, mëme toute petite, c'est des généralités qu'il y a.
Ce que je demande ça doit ëtre un truc tout bëte, seulement, je ne trouve pas mon bonheur!
enfin bref, comment faire y=x*x et afficher le résultat.
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
8 déc. 2006 à 22:27
Salut etaxi,

par exemple tu crées un contrôle textbox (zone de texte) dans une fenêtre et quand tu cliques sur le bouton (que tu auras créé aussi), la valeur qui aura été rentré sera doublée.
Cet exemple nécessite des contrôles de saisie pour être correcte mais bon pour apprendre tu peux t'en passer pour l'instant.
Je pense qu'avec ça et le cours dont t'as parlé Ombitious_developper, il y a de quoi faire.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2006 à 22:28
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
8 déc. 2006 à 23:06
Salut Tous:

Brunews > Le fichier zip du livre de Jeffrey Richter n'est plus fonctionnel.
Est ce que vous pouvez régler le problème?
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2006 à 23:14
ohhh
je regarde illico.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2006 à 23:23
je l'ai changé sur le serveur, ensuite rapatrié avec lien au dessus et extrait, fonctionnant.

Faut penser à le unlock une fois dézippé, clic droit propriétés sinon XP ou Vista bloque l'exécution du chm.

ciao...
BruNews, MVP VC++
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
8 déc. 2006 à 23:30
Salut:

Pouvez vous précisez le lien vers les sources de Richter?
Parceque je ne peux pas accèdre à ton site.
 
Cordialement;
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2006 à 23:41
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2006 à 23:44
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 déc. 2006 à 02:12
Oula, mal configué ton site
Quand on arrive dessus il propose d'enregistrer un fichier, et rien ne s'affiche

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 déc. 2006 à 02:13
La remarque ne faut que pour Firefox en fait

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 déc. 2006 à 02:21
Y a des trucs qui vont avec FF ???

ciao...
BruNews, MVP VC++
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 déc. 2006 à 10:46
Je pense qu'aujourd'hui on ne peut plus négliger les utilisateurs de FF. En tous cas moi je l'utilise tout le temps (en plus mon IE7 plante une fois sur deux donc j'ai pas trop le choix)

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
10 déc. 2006 à 10:11
//-----------------------------------------------------------------
#include <windows.h>
#include <stdlib.h>



HINSTANCE hInstance;



//-----------------------------------------------------------------
LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
  INT64  nResult;
  char   szBuf[24];
  static HWND hEdit, hResult;
   
  switch(msg)
  {
    case WM_CREATE:
      CreateWindow("BUTTON", "Le carré de",
                    WS_CHILD | WS_VISIBLE,
                    10, 10, 90, 20, hWnd, (HMENU)1001, hInstance, 0);
                      
      hEdit = CreateWindow("EDIT", "",
                    WS_CHILD|WS_VISIBLE|ES_CENTER|ES_NUMBER|WS_BORDER,
                    100, 10, 100, 20, hWnd, (HMENU)-1, hInstance, 0);
                   
      CreateWindow("BUTTON", "=",
                    WS_CHILD | WS_VISIBLE,
                    200, 10, 30, 20, hWnd, (HMENU)1002, hInstance, 0);
                   
      hResult = CreateWindow("STATIC", "",
                    WS_CHILD | WS_VISIBLE | SS_CENTER |WS_BORDER,
                    230, 10, 170, 20, hWnd, (HMENU)-1, hInstance, 0);
                                                                             
      SendMessage(hEdit, EM_SETLIMITTEXT,  (WPARAM)10, (LPARAM)0);
      srand(GetTickCount());       
      return 0;



    case WM_COMMAND:
      switch(LOWORD(wp))
      {
        case 1001: // 1er Bouton
          SetWindowText(hEdit, itoa(rand(), szBuf, 10));
          SetWindowText(hResult, "");     
          SetFocus(hEdit); 
          break;



        case 1002:  // 2eme Bouton
          GetWindowText(hEdit, szBuf, sizeof(szBuf));
          nResult = _atoi64(szBuf);
          SetWindowText(hResult, _i64toa(nResult * nResult, szBuf, 10));             
          SetFocus(hEdit);
          break;
      }     
      return 0;
    
    case WM_SETFOCUS:
      SetFocus(hEdit);
      return 0;
           
    case WM_DESTROY:
      PostQuitMessage(0);
      return 0;
  }
  return DefWindowProc(hWnd, msg, wp, lp);
}



//-----------------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, PSTR a, int b)
{
  MSG        msg;
  HWND       wnd;
  WNDCLASSEX wcl;
  char *szWinApp = "Carré...";
   
  hInstance = hInst;
  memset(&wcl, 0, sizeof(WNDCLASSEX));
 
  wcl.cbSize        = sizeof(WNDCLASSEX);
  wcl.lpfnWndProc   = WinProc;
  wcl.style         = CS_HREDRAW | CS_VREDRAW;
  wcl.hInstance     = hInstance;
  wcl.lpszClassName = szWinApp;
  wcl.hbrBackground = CreateSolidBrush(RGB(240, 245, 255));
  wcl.hCursor       = LoadCursor(0, IDC_ARROW);
 
  if(!RegisterClassEx(&wcl)) return 0;
 
  wnd = CreateWindow(szWinApp, szWinApp,
                     WS_SYSMENU|WS_CAPTION|WS_VISIBLE|WS_MINIMIZEBOX,
                     300, 300, 416, 76, 0, 0, hInstance, 0);
                      
  if(!wnd) return 0;
                          
  ShowWindow(wnd, SW_NORMAL);
 
  while(GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
 
  return 0;
}
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
10 déc. 2006 à 10:17
Salut magma,

merci d'avoir mis sous forme de code ce que j'avais expliqué plus haut (en gros).
Donc là, etaxi tu as largement (et le mot et faible) de quoi faire ce que tu souhaites.

PS : etaxi> pense à accepter la (ou les) réponse(s) qui t'a(ont) permis de résoudre ton problème.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
8 déc. 2006 à 20:25
Salut:

Tu as besoin d'utiliser les boites de dialogue.
Il y a sur developpez.com un très bon cours sur la pogrammation Windows, il contient pas mal d'exemples qui montrent comment créer des boites de dialogues et comment interréagir avec elles.

Bonne chance
0
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
14 déc. 2006 à 19:37
Voilà j'ai accepté toutes les contributions, encore MERCI, j'ai essayé le code ci-dessus, ça fonctionne trés bien MAIS la fenëtre est trop petite et une partie de la petite appli/ est tronquée!
oû est-ce que je pourrais l'aggrandir?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 déc. 2006 à 19:39
Réponse acceptée sert a dire que la réponse résoud ton problème

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
14 déc. 2006 à 19:53
Salut:

Pour agrandir la taille de ta fenêtre tu dois changer les paramètres de CreateWindow:




wnd = CreateWindow(szWinApp, szWinApp,
                   WS_SYSMENU|WS_CAPTION|WS_VISIBLE|WS_MINIMIZEBOX,
                   CW_USEDEFAULT,
CW_USEDEFAULT
,
                   , 500
0
Rejoignez-nous