#include "lvkrn.h"
L_LVKRN_API L_INT L_VecAttachToWindow(hWnd, pVector, dwFlags)
L_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. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
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. |
Functions: |
This example will assign a window handle to a vector handle.
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
/* 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 );
}
}