Enables or disables the calling of the LVectorWindow::EndChanging member function.
#include "ltwrappr.h"
L_BOOL LVectorWindow::EnableAlwaysEndNotification(bEnable)
Flag that indicates whether to enable or disable the calling of the LVectorWindow::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. |
The previous setting.
Call this function to enable or disable the calling of the LVectorWindow::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.
class LMyNewVectorWindow: public LVectorWindow{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 LMyNewVectorWindow::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(LVectorWindow::StartChanging(nChangeType,nChangeCategory));}L_VOID LMyNewVectorWindow::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*/}LVectorWindow::EndChanging(nChangeType,nChangeCategory,nRetCode);}L_INT LVectorWindow__EnableAlwaysEndNotificationExample(HWND hWnd, LVectorWindow *pMyVectorWindow){L_INT nRet;UNREFERENCED_PARAMETER(hWnd);if (!pMyVectorWindow->IsChangeNotificationEnabled()){MessageBox(hWnd, TEXT("ChangeNotification NOT enabled. Enabling..."), TEXT(""), MB_OK);pMyVectorWindow->EnableChangeNotification(TRUE);}if (!pMyVectorWindow->IsAlwaysEndNotification()){MessageBox(hWnd, TEXT("EndNotification NOT enabled. Enabling..."), TEXT(""), MB_OK);pMyVectorWindow->EnableAlwaysEndNotification(TRUE);}//Change rotationVECTORPOINT rotatePoint;nRet = pMyVectorWindow->GetRotation(&rotatePoint);if(nRet != SUCCESS)return nRet;rotatePoint.x += 30.0F;rotatePoint.y -= 20.0F;rotatePoint.z += 50.0F;nRet = pMyVectorWindow->SetRotation(&rotatePoint);if(nRet != SUCCESS)return nRet;//Change translationVECTORPOINT translatePoint;nRet = pMyVectorWindow->GetTranslation(&translatePoint);if(nRet != SUCCESS)return nRet;translatePoint.x += 0.5F;nRet = pMyVectorWindow->SetTranslation(&translatePoint);if(nRet != SUCCESS)return nRet;//Change scaleVECTORPOINT scalePoint;nRet = pMyVectorWindow->GetScale(&scalePoint);if(nRet != SUCCESS)return nRet;scalePoint.x *= 0.5F;scalePoint.y *= 0.5F;scalePoint.z *= 0.5F;nRet = pMyVectorWindow->SetScale(&scalePoint);if(nRet != SUCCESS)return nRet;return SUCCESS;}