Événements
19 nov., 23 h - 21 nov., 23 h
Bénéficiez de l’avantage concurrentiel dont vous avez besoin avec de puissantes solutions IA et Cloud en participant à Microsoft Ignite en ligne.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Vous pouvez utiliser les fonctions de ligne pour dessiner des marqueurs. Un marqueur est un symbole centré sur un point. Les applications de dessin utilisent des marqueurs pour désigner les points de départ, les points de fin et les points de contrôle. Les applications de feuilles de calcul utilisent des marqueurs pour désigner des points d’intérêt sur un graphique ou un graphique.
Dans l’exemple de code suivant, la fonction Marker définie par l’application crée un marqueur à l’aide des fonctions MoveToEx et LineTo . Ces fonctions dessinent deux lignes croisées, de 20 pixels de longueur, centrées sur les coordonnées du curseur.
void Marker(LONG x, LONG y, HWND hwnd)
{
HDC hdc;
hdc = GetDC(hwnd);
MoveToEx(hdc, (int) x - 10, (int) y, (LPPOINT) NULL);
LineTo(hdc, (int) x + 10, (int) y);
MoveToEx(hdc, (int) x, (int) y - 10, (LPPOINT) NULL);
LineTo(hdc, (int) x, (int) y + 10);
ReleaseDC(hwnd, hdc);
}
Le système stocke les coordonnées du curseur dans le paramètre lParam du message WM_LBUTTONDOWN lorsque l’utilisateur appuie sur le bouton gauche de la souris. Le code suivant montre comment une application obtient ces coordonnées, détermine si elles se trouvent dans sa zone cliente et les transmet à la fonction Marker pour dessiner le marqueur.
// Line- and arc-drawing variables
static BOOL bCollectPoints;
static POINT ptMouseDown[32];
static int index;
POINTS ptTmp;
RECT rc;
case WM_LBUTTONDOWN:
if (bCollectPoints && index < 32)
{
// Create the region from the client area.
GetClientRect(hwnd, &rc);
hrgn = CreateRectRgn(rc.left, rc.top,
rc.right, rc.bottom);
ptTmp = MAKEPOINTS((POINTS FAR *) lParam);
ptMouseDown[index].x = (LONG) ptTmp.x;
ptMouseDown[index].y = (LONG) ptTmp.y;
// Test for a hit in the client rectangle.
if (PtInRegion(hrgn, ptMouseDown[index].x,
ptMouseDown[index].y))
{
// If a hit occurs, record the mouse coords.
Marker(ptMouseDown[index].x, ptMouseDown[index].y,
hwnd);
index++;
}
}
break;
Événements
19 nov., 23 h - 21 nov., 23 h
Bénéficiez de l’avantage concurrentiel dont vous avez besoin avec de puissantes solutions IA et Cloud en participant à Microsoft Ignite en ligne.
S’inscrire maintenantDocumentation
Fonctions de courbe et de courbe - Win32 apps
Les fonctions suivantes sont utilisées avec des lignes et des courbes.
LineTo, fonction (wingdi.h) - Win32 apps
La fonction LineTo dessine une ligne à partir de la position actuelle jusqu’au point spécifié, sans l’inclure.
Une ligne est un ensemble de pixels mis en surbrillance sur un affichage raster (ou un ensemble de points sur une page imprimée) identifiés par deux points : un point de départ et un point de fin.