L_VecAttachToWindow

#include "lvkrn.h"

L_LVKRN_API L_INT L_VecAttachToWindow(hWnd, pVector, dwFlags)

Attaches a vector handle to a window.

Parameters

L_VECTOR_WND hWnd

Handle of the window to which the vector handle will be attached.

pVECTORHANDLE pVector

Pointer to a vector handle that will be attached to the window specified in hWnd.

L_UINT32 dwFlags

Flags that modify the vector engine. Possible values are:

Value Meaning
VECTOR_ENGINE_DOUBLEBUFFER Use double buffering for flicker-free screen updates.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function will attach a vector handle to a window handle. All subsequent changes to the vector image will be reflected on the window.

Note: When you copy one vector to another using L_VecCopy, and the source vector is attached to a window, the destination vector will NOT be attached to the same window automatically.

You can draw on the surface of any window using L_VecPaint, but to use double buffering, you must attach the vector handle to a window.

Required DLLs and Libraries

See Also

Functions

Example

This example will assign a window handle to a vector handle.

/* This is the window procedure of the attached window. */ 
LRESULT WINAPI WndProc(HWND   hwnd, 
                       UINT   message, 
                       WPARAM wParam, 
                       LPARAM lParam) 
{ 
   VECTORHANDLE   Vector;  /* Vector handle. */ 
   L_INT          nRet;    /* return value. */ 
   PAINTSTRUCT    PaintStruct; 
   HDC            hdc; 
   RECT           rect; 
 
   switch(message) 
   { 
      case WM_CREATE: 
         /* Load an image into the vector handle. */ 
         nRet = L_VecLoadFile( MAKE_IMAGE_PATH(TEXT("random.dxf")), &Vector, NULL, NULL ); 
         if( nRet != SUCCESS ) 
         { 
            MessageBox(hwnd, TEXT("Error loading the file."), TEXT("Error"), MB_OK); 
            return -1; 
         } 
 
         /* Attach the vector image with this window using the GDI engine and double buffering. */ 
         nRet = L_VecAttachToWindow( hwnd, &Vector, VECTOR_ENGINE_DOUBLEBUFFER ); 
         if( nRet != SUCCESS ) 
         { 
            MessageBox(hwnd, TEXT("Error assigning vector image to window."), TEXT("Error"), MB_OK); 
            L_VecFree( &Vector ); 
            return -1; 
         } 
          
         return 0; 
 
      case WM_SIZE: 
         /* Set new view port */ 
         GetClientRect( hwnd, &rect ); 
         L_VecSetViewport( &Vector, &rect ); 
         return 0; 
 
      case WM_PAINT: 
         hdc = BeginPaint(hwnd, &PaintStruct); 
 
         /* Paint the vector image */ 
         L_VecPaint( hdc, &Vector, TRUE ); 
 
         EndPaint(hwnd, &PaintStruct); 
         return 0; 
 
      case WM_DESTROY: 
         /* Free the vector */ 
         L_VecFree( &Vector ); 
 
         PostQuitMessage( 0 ); 
         return 0; 
 
      default: 
         return DefWindowProc( hwnd, message, wParam, lParam ); 
   } 
} 

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Vector C API Help