LVectorBase::EnableAlwaysEndNotification

Summary

Enables or disables the calling of the LVectorBase::EndChanging member function.

Syntax

#include "ltwrappr.h"

virtual L_BOOL LVectorBase::EnableAlwaysEndNotification(bEnable=TRUE)

Parameters

L_BOOL bEnable

Flag that indicates whether to enable or disable the calling of the LVectorBase::EndChanging member function if the operation on the bitmap failed. Possible values are:

Value Meaning
TRUE The LVectorBase::EndChanging() member function will be called even if the operation function returned an error code.
FALSE The LVectorBase::EndChanging() member function will not be called if the operation function fails.

Returns

The previous setting.

Comments

Call this function to enable or disable the calling of the LVectorBase::EndChanging function if the operation on the bitmap failed. The EndChanging function is normally called only if the operation was successful. Calling EnableAlwaysEndNotification with bEnable = TRUE will cause the EndChanging() member function to be called even if the operation function returned an error code.

Required DLLs and Libraries

See Also

Functions

Topics

Example

class LMyVector: public LVectorBase 
{ 
private: 
   L_BOOL m_bChanged; 
 
   virtual L_INT  StartChanging(L_UINT nChangeType,L_UINT nChangeCategory); 
   virtual L_VOID EndChanging(L_UINT nChangeType,L_UINT nChangeCategory,L_INT nRetCode); 
}; 
 
L_INT LMyVector::StartChanging(L_UINT nChangeType,L_UINT nChangeCategory) 
{ 
   switch(nChangeType) 
   { 
   case NC_VECTOR_ROTATE: 
      MessageBox(NULL, TEXT("StartChanging: NC_VECTOR_ROTATE"), TEXT(""), MB_OK); 
      break; 
 
   case NC_VECTOR_TRANSLATE: 
      MessageBox(NULL, TEXT("StartChanging: NC_VECTOR_TRANSLATE"), TEXT(""), MB_OK); 
      break; 
 
   case NC_VECTOR_SCALE: 
      MessageBox(NULL, TEXT("StartChanging: NC_TRANSFORM_SCALE"), TEXT(""), MB_OK); 
      break; 
 
      /* 
      case ….: 
      do other things 
      */ 
   } 
   return(LVectorBase::StartChanging(nChangeType,nChangeCategory)); 
} 
 
L_VOID LMyVector::EndChanging(L_UINT nChangeType,L_UINT nChangeCategory,L_INT nRetCode) 
{ 
   switch(nChangeType) 
   { 
   case NC_VECTOR_ROTATE: 
      MessageBox(NULL, TEXT("EndChanging: NC_VECTOR_ROTATE"), TEXT(""), MB_OK); 
      if(nRetCode==SUCCESS) 
         m_bChanged=TRUE; 
      break; 
 
   case NC_VECTOR_TRANSLATE: 
      MessageBox(NULL, TEXT("EndChanging: NC_VECTOR_TRANSLATE"), TEXT(""), MB_OK); 
      if(nRetCode==SUCCESS) 
         m_bChanged=TRUE; 
      break; 
 
   case NC_VECTOR_SCALE: 
      MessageBox(NULL, TEXT("EndChanging: NC_VECTOR_SCALE"), TEXT(""), MB_OK); 
      if(nRetCode==SUCCESS) 
         m_bChanged=TRUE; 
      break; 
 
 
      /* 
      case ….: 
      do other things 
      */ 
   } 
   LVectorBase::EndChanging(nChangeType,nChangeCategory,nRetCode); 
} 
 
L_INT LVectorBase__EnableAlwaysEndNotificationExample(HWND hWnd, LVectorBase *pMyVector) 
{ 
   L_INT nRet; 
   UNREFERENCED_PARAMETER(hWnd); 
 
   if (!pMyVector->IsChangeNotificationEnabled()) 
   { 
      MessageBox(hWnd, TEXT("ChangeNotification NOT enabled.  Enabling..."), TEXT(""), MB_OK); 
      pMyVector->EnableChangeNotification(); 
   } 
 
   if (!pMyVector->IsAlwaysEndNotification()) 
   { 
      MessageBox(hWnd, TEXT("EndNotification NOT enabled.  Enabling..."), TEXT(""), MB_OK); 
      pMyVector->EnableAlwaysEndNotification(); 
   } 
    
 
   //Change rotation 
   VECTORPOINT rotatePoint; 
   nRet = pMyVector->GetRotation(&rotatePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
   rotatePoint.x += 30.0F; 
   rotatePoint.y -= 20.0F; 
   rotatePoint.z += 50.0F; 
   nRet = pMyVector->SetRotation(&rotatePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   //Change translation 
   VECTORPOINT translatePoint; 
   nRet = pMyVector->GetTranslation(&translatePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
   translatePoint.x += 0.5F; 
   nRet = pMyVector->SetTranslation(&translatePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   //Change scale 
   VECTORPOINT scalePoint; 
   nRet = pMyVector->GetScale(&scalePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
   scalePoint.x *= 0.5F; 
   scalePoint.y *= 0.5F; 
   scalePoint.z *= 0.5F; 
   nRet = pMyVector->SetScale(&scalePoint); 
   if(nRet != SUCCESS) 
      return nRet; 
 
   return SUCCESS; 
} 
Help Version 22.0.2022.12.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Vector C++ Class Library Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.