L_VecAttachToWindow

#include "lvkrn.h"

L_LVKRN_API L_INT L_VecAttachToWindow(hWnd, pVector, dwFlags)

HWND hWnd;

/* window handle */

pVECTORHANDLE pVector;

/* pointer to a vector handle */

L_UINT32 dwFlags;

/* flags */

Attaches a vector handle to a window.

Parameter

Description

hWnd

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

pVector

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

dwFlags

Flags that modify the vector engine. Possible values are:

 

Value

Meaning

 

VECTOR_ENGINE_DOUBLEBUFFER

Use double buffering for flicker-free screen updates.

Returns

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

LVKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

L_VecPaint, L_VecCopy

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( TEXT("TEMP.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 );
   }
}