Section courante

A propos

Section administrative du site

ARC

Arc
GDI.EXE Support de Windows 3.1

Syntaxe

BOOL Arc(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);

Paramètres

Nom Description
hdc Ce paramètre permet d'indiquer l'identificateur de la périphérique de contexte.
nLeftRect Ce paramètre permet d'indiquer la coordonnée de gauche de la zone rectangulaire.
nTopRect Ce paramètre permet d'indiquer la coordonnée supérieur de la zone rectangulaire.
nRightRect Ce paramètre permet d'indiquer la coordonnée de droite de la zone rectangulaire.
nBottomRect Ce paramètre permet d'indiquer la coordonnée inférieur de la zone rectangulaire.
nXStartArc Ce paramètre permet la coordonnée horizontal de départ du rayon.
nYStartArc Ce paramètre permet la coordonnée vertical de départ du rayon.
nXEndArc Ce paramètre permet la coordonnée horizontal de fin du rayon.
nYEndArc Ce paramètre permet la coordonnée vertical de fin du rayon.

Description

Cette fonction permet de dessiner l'arc d'une ellipse.

Exemple

Voici un exemple de générer les 100 en arc dans le quatrième cadran :

  1. #include <windows.h>
  2. #include <stdlib.h>
  3.  
  4. HWND  hWnd = 0;
  5.  
  6. LRESULT FAR PASCAL _export MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
  7.   static HDC hDC;
  8.   static PAINTSTRUCT ps;
  9.   int    I;
  10.   switch (message) {
  11.      case WM_PAINT:
  12.       hDC=BeginPaint(hWnd,&ps);
  13.       for(I = 1; I <= 100; I++) {
  14.        HPEN CurrColor = CreatePen(PS_SOLID, 1, RGB(rand() & 255,rand() & 255,rand() & 255));
  15.        SelectObject(hDC,CurrColor);
  16.        Arc(hDC,-300,-300,I*3,I*3,0,0,0,0);
  17.       }
  18.       EndPaint(hWnd,&ps);
  19.       break;
  20.      case WM_DESTROY:
  21.       PostQuitMessage(0);
  22.       break;
  23.      default:
  24.       return (DefWindowProc(hWnd, message, wParam, lParam));
  25.   }
  26.   return (NULL);
  27. }
  28.  
  29. #pragma argsused
  30.  
  31. int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
  32.  MSG msg;
  33.  WNDCLASS wc;
  34.  wc.lpszClassName = "ARC";
  35.  if (!hPrevInstance) {
  36.   wc.style = CS_HREDRAW | CS_VREDRAW;
  37.   wc.lpfnWndProc = MainWndProc;
  38.   wc.cbClsExtra = 0;
  39.   wc.cbWndExtra = 0;
  40.   wc.hInstance = hInstance;
  41.   wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
  42.   wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  43.   wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  44.   wc.lpszMenuName = NULL;
  45.   if(!RegisterClass(&wc)) {
  46.      MessageBox(NULL, "Impossible d'enregistrer ARC!","Error", MB_OK);
  47.      return (FALSE);
  48.   }
  49.  }
  50.  
  51.  hWnd = CreateWindow(
  52.   wc.lpszClassName,
  53.   "Arc Samples",
  54.   WS_OVERLAPPED|WS_HSCROLL|WS_VSCROLL | WS_SYSMENU,
  55.   CW_USEDEFAULT, CW_USEDEFAULT,
  56.   CW_USEDEFAULT, CW_USEDEFAULT,
  57.   NULL, NULL,
  58.   hInstance,
  59.   NULL
  60.  );
  61.  
  62.  if(!hWnd) return (FALSE);
  63.  
  64.  ShowWindow(hWnd, nCmdShow);
  65.  UpdateWindow(hWnd);
  66.  
  67.  while (GetMessage(&msg, NULL, NULL, NULL)) {
  68.   TranslateMessage(&msg);
  69.   DispatchMessage(&msg);
  70.  }
  71.  return (msg.wParam);
  72. }

on obtiendra le résultat semblable au suivant :

Voir également

Langage de programmation - C pour OS/2 - Support de Windows 3.1 - Chord
Langage de programmation - Turbo Pascal pour Windiows - Référence procédures et fonctions - Arc
Système d'exploitation - OS/2 - Introduction

Dernière mise à jour : Dimanche, le 13 mai 2018