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

C++ & C++ .NET

 > 

Windows

 > 

GUI

 > 

Tracer des rectangles


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

Tracer des rectangles

vendredi 19 mars 2010 à 11:59:28 | Tracer des rectangles

nassib0001

BJr
je suis debutant en C++
je veux realiser un programmme qui permet d afficher une fentre simple
et de tracer quelque rectangle dedans

Abientot
dimanche 21 mars 2010 à 17:18:27 | Re : Visual studio c++ 6.0

rt15

Membre Club Administrateur CodeS-SourceS
Bonjour,

Merci de ne pas employer "je veux", de faire des phrases correctes (Pas de style SMS, utiliser de la ponctuation et des majuscules...), de ne pas double poster, et de donner des titres précisant le problème...

Code C/C++ :
#ifdef UNICODE
#define _T(x) L ## x
typedef unsigned short TCHAR;
#else
#define _T(x) x
typedef char TCHAR;
#endif

#include <windows.h>

HINSTANCE _hThisInstance;              /* Handle du module                    */
HWND _hWnd;                            /* Handle de la fenêtre                */
LPTSTR _lpAppName = _T("Dessin");      /* Nom de l'appli                      */

HBRUSH _hMainBrush = NULL;             /* Brush de la couleur de la fenêtre   */
RECT _rect = { 10, 10, 200, 100 };

WORD __stdcall Err_ShowLast(TCHAR* lpTitle)
{
  DWORD nLastError;
  LPTSTR lpMessageBuffer;

  nLastError = GetLastError();

  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                (TCHAR*)(void*)&lpMessageBuffer, 0, NULL);

  MessageBox(NULL, lpMessageBuffer, lpTitle, MB_OK | MB_ICONERROR);

  LocalFree(lpMessageBuffer);
  return 1;
}

LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
  PAINTSTRUCT ps;             /* Info de dessin                                */
  HDC hDc;                    /* DC de dessin                                  */
  int bHandled;               /* Pour savoir si le message est traité          */
  long nResult;

  nResult = 0;
  bHandled = 0;
  switch (nMessage)
  {
    case WM_PAINT:
      hDc = BeginPaint(hWnd, &ps);
      FillRect(hDc, &_rect, _hMainBrush);
      EndPaint(hWnd, &ps);
      bHandled = 1;
      break;
    case WM_DESTROY:
      /* On signale que le thread va s'arrêter */
      PostQuitMessage(0);
      bHandled = 1;
      break;
  }
  if (! bHandled)
    nResult = DefWindowProc(hWnd, nMessage, wParam, lParam);
  return nResult;
}

BOOL __stdcall CreateMyWindow()
{
  WNDCLASSEX wincl;       /* Classe de la fenêtre utilisée                    */
  int nResult;

  nResult = 0;

  /* Création de la classe de fenêtre */
  wincl.cbSize = sizeof(WNDCLASSEX);
  wincl.style = 0;
  wincl.lpfnWndProc = WindowProcedure;
  wincl.cbClsExtra = 0;
  wincl.cbWndExtra = 0;
  wincl.hInstance = _hThisInstance;
  wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
  wincl.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
  wincl.lpszMenuName = 0;
  wincl.lpszClassName = _lpAppName;
  wincl.hIconSm = NULL;

  /* Enregistrement de la classe */
  if (! RegisterClassEx(&wincl)) goto the_end;

  /* Création de la fenêtre */
  _hWnd = CreateWindowEx(0, _lpAppName, _lpAppName,
                         WS_OVERLAPPED | WS_SYSMENU,
                         CW_USEDEFAULT, CW_USEDEFAULT, 500, 200,
                         HWND_DESKTOP, NULL, _hThisInstance, NULL);
  if (! _hWnd) goto the_end;

  /* Affichage de la fenêtre */
  ShowWindow (_hWnd, SW_SHOW);

  nResult = 1;
the_end:
  return nResult;
}

/**
 * Main
 */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  MSG message;                        /* Messages envoyés à l'application     */
  int nResult;

  /* Récupération du handle du module */
  _hThisInstance = hInstance;

  _hMainBrush = CreateSolidBrush(RGB(255, 0, 0));

  if (! CreateMyWindow())
  {
    nResult = Err_ShowLast(_T("Cannot create main window"));
    goto the_end;
  }

  /* Boucle de traitement des messages */
  while (GetMessage(&message, NULL, 0, 0))
  {
    TranslateMessage(&message);
    DispatchMessage(&message);
  }
  nResult = message.wParam;

the_end:
  if (_hMainBrush != NULL)
    DeleteObject(_hMainBrush);
  return nResult;
}
dimanche 21 mars 2010 à 17:23:57 | Re : Tracer des rectangles

nassib0001

Merci bien pour votre code sa marche bien et je veux savoir est ce que il est possible de dessiner plusieur rectangle ansi que des ligne
dimanche 21 mars 2010 à 19:47:05 | Re : Tracer des rectangles

rt15

Membre Club Administrateur CodeS-SourceS
Qui peut tracer un rectangle peut tracer n rectangle : c'est la même fonction à simplement appeler plusieurs fois. Pour les lignes, tu as LineTo/MoveToEx.


Cette discussion est classée dans : visual, studio


Répondre à ce message

Sujets en rapport avec ce message

Glut et Visual Studio 6 [ par Paul ] C'est moi ou il s'aime vraiment pas ces 2 là ?Est-ce que quelqu'un a réussi à faire marcher "EXEMPLE SIMPLE OPENGL [CODE EN C]" sous VC++6 ?Je me retr creer un fichier d'install avec instalshield visual studio [ par f1cobra ] J'ai créé un projet vc++ avec une database en access, j'essaie de créer le fichier d'installation avec l'instalshield de visual studio. Mon problème e API pour les IT [ par superteta2003 ] Je voudrais trouver l'équivalent des fonction interrupt(), getvect(), setvect() de borlan turbo C. Ces fonctions sont inlus dans la librairie dos.h . .exe crée avec Visual Studio qui marche...que sur mon PC... [ par starkrous ] j'ai eu la surprise de me rendre compte que mon cher executable creer sous visual studio ne marchait que sur mon pc.d'apres ce qu'on m'a dit, le Pc au mySql en C sous Visual Studio [ par bragon ] Je veux utiliser un programme en C qui consulte une base de donnée MySql. J'utilise Visual Studio pour compiler mon programme et l'Api C livré avec My mySql en C sous Visual Studio [ par bragon ] Je veux utiliser un programme en C qui consulte une base de donnée MySql. J'utilise Visual Studio pour compiler mon programme et l'Api C livré avec My Borland --> Visual Studio [ par 6Po ] Aloha :DJ'ai fait du Cpp pendant un bon moment sur Borland et la je passe sur Visual... mais l'aide de visual studio net je la trouve pas top :DDu cou projet à réaliser avec Visual Studio net c++ [ par Pouchnick ] pouchnickSalut la compagnie , j ai besoin d avoir des solutions surun programme que je dois créer.je dois en effet programmer un jeu de rôle à base de [MFC] Utilisation de la classe CTreeCtrl, couleur des lignes [ par karine3884 ] Bonjour, Je programme sous Visual Studio C++ 6.0. J'utilise un CtreeCtrl pour créer un arbre (une arborescence). J'aimerai modifier la couleur des li Message d'erreur à l'installation de visual studio 6 sous XP [ par JeanLucZ ] Bonjour,quelqu'un peut-il me dire pourquoi j'ai toujours un message d'erreur lorsque j'installe visual studio 6 sous XP.C'est du genre "l'installation


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 : 0,437 sec (4)

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