Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Calculates the length of the geometry as though each segment were unrolled into a line.
Overload list
| Method | Description | 
|---|---|
| ComputeLength(D2D1_MATRIX_3X2_F&,FLOAT*) | Calculates the length of the geometry as though each segment were unrolled into a line. | 
| ComputeLength(D2D1_MATRIX_3X2_F*,FLOAT*) | Calculates the length of the geometry as though each segment were unrolled into a line. | 
| ComputeLength(D2D1_MATRIX_3X2_F&,FLOAT,FLOAT*) | Calculates the length of the geometry as though each segment were unrolled into a line. | 
| ComputeLength(D2D1_MATRIX_3X2_F*,FLOAT,FLOAT*) | Calculates the length of the geometry as though each segment were unrolled into a line.  | 
Examples
The following code shows how to use ComputeLength to compute the length of a specified path geometry.
float length = 0;
hr = m_pPathGeometry->ComputeLength(
    NULL, //no transform
    &length
    );
if (SUCCEEDED(hr))
{
    m_Animation.SetStart(0);        //start at beginning of path
    m_Animation.SetEnd(length);     //length at end of path
    m_Animation.SetDuration(5.0f);  //seconds
    ZeroMemory(&m_DwmTimingInfo, sizeof(m_DwmTimingInfo));
    m_DwmTimingInfo.cbSize = sizeof(m_DwmTimingInfo);
    // Get the composition refresh rate. If the DWM isn't running,
    // get the refresh rate from GDI -- probably going to be 60Hz
    if (FAILED(DwmGetCompositionTimingInfo(NULL, &m_DwmTimingInfo)))
    {
        HDC hdc = GetDC(m_hwnd);
        m_DwmTimingInfo.rateCompose.uiDenominator = 1;
        m_DwmTimingInfo.rateCompose.uiNumerator = GetDeviceCaps(hdc, VREFRESH);
        ReleaseDC(m_hwnd, hdc);
    }
    ShowWindow(m_hwnd, SW_SHOWNORMAL);
    UpdateWindow(m_hwnd);
}
Requirements
| Requirement | Value | 
|---|---|
| Library | 
  | 
| DLL | 
  |