L_VecAttachToWindow
#include "lvkrn.h"
L_INT EXT_FUNCTION L_VecAttachToWindow(hWnd, pVector, nEngine, dwFlags)
HWND hWnd; |
/* window handle */ |
pVECTORHANDLE pVector; |
/* pointer to a vector handle */ |
L_INT nEngine; |
/* vector engine */ |
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. |
|
nEngine |
The vector engine to associate with the specified vector handle. Possible values are: |
|
|
Value |
Meaning |
|
VECTOR_ENGINE_GDI |
Use GDI rendering. (No lights and shading). |
|
VECTOR_ENGINE_OPENGL |
Use OpenGL rendering. (Viewing only, drawings not editable). |
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.
After the vector engine is successfully attached, all subsequent calls to the vector functions with this vector handle will use this engine for rendering.
Note: |
OpenGL and DirectX engines will not work in a palletized screen mode (256-colors or less). This function will fail, and return ERROR_INV_PARAMETER if an attempt is made to use either of these engines in 256-color mode or less. |
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: |
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_GDI, 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 );
}
}