Creates a Pan Window for the bitmap window.
#include "ltwrappr.h"
HWND LBitmapWindow::CreatePanWnd(ulDisplayFlags, x, y, nCx, nCy, pszClassName, hIcon, hCursor, bSysMenu)
Flags that determine how the image is painted in the Pan Window. For values, refer to Flags for the Flags for the LBitmapSettings::SetDisplayMode Function.
X coordinate for the origin of the Pan Window.
Y coordinate for the origin of the Pan Window.
Width of the Pan Window.
Height of the Pan Window.
The registered window class name to be used in creating the Pan Window.
The icon handle used for creating Pan Window.
The cursor handle used for creating Pan Window.
Flag that indicates whether the Pan Window will have a system menu. Possible values are:
Value | Meaning |
---|---|
TRUE | The Pan Window will have a system menu. |
FALSE | The Pan Window will not have a system menu. |
Value | Meaning |
---|---|
!= NULL | The function was successful and the returned value is the window handle for the created control. |
NULL | An error occurred, and the window could not be created. |
If you call this function for a class object that already has a created Pan Window associated with it, the function will destroy the existing Pan Window and create a new one with the specified settings.
Win32, x64.
class LUserBWndCreatePanWnd : public LBitmapWindow
{
public:
LUserBWndCreatePanWnd() ;
virtual ~LUserBWndCreatePanWnd() ;
virtual L_VOID PanWndCallBack(L_UINT uFlag,LPRECT rcPan);
virtual LRESULT MsgProcCallBack(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
virtual L_BOOL OnFileDropped(L_TCHAR * pszFile,L_UINT uFileNumber,L_UINT uFilesCount);
virtual L_VOID OnDraw(HDC hdc,RECT& Rect);
virtual L_VOID OnZoom(L_UINT uZoomPercent);
virtual L_VOID PaintNotification(L_INT nPass, L_INT uType);
};
LUserBWndCreatePanWnd::LUserBWndCreatePanWnd()
{
}
LUserBWndCreatePanWnd::~LUserBWndCreatePanWnd()
{
}
L_VOID LUserBWndCreatePanWnd::PanWndCallBack(L_UINT uFlag,LPRECT rcPan)
{
UNREFERENCED_PARAMETER(rcPan);
// user can set his code for each message
switch (uFlag)
{
case PANWIN_CREATED:
// user code
return;
case PANWIN_UPDATED:
// user code
return;
case PANWIN_DESTROYED:
// user code
return;
case PANWIN_MOVED:
// user code
return;
}
}
LRESULT LUserBWndCreatePanWnd::MsgProcCallBack(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
break ;
};
return LBitmapWindow::MsgProcCallBack(hWnd,uMsg,wParam,lParam);
}
L_BOOL LUserBWndCreatePanWnd::OnFileDropped(L_TCHAR * pszFile, L_UINT uFileNumber, L_UINT uFilesCount)
{
UNREFERENCED_PARAMETER(uFilesCount);
UNREFERENCED_PARAMETER(uFileNumber);
SetFileName(pszFile);
if (Load() == SUCCESS)
return FALSE; //if loading the file succeeded then stop enumerating files
return TRUE;
}
L_VOID LUserBWndCreatePanWnd::OnDraw(HDC hdc,RECT& Rect)
{
UNREFERENCED_PARAMETER(Rect);
Rectangle( hdc,10,10, 50,50);
}
L_VOID LUserBWndCreatePanWnd::OnZoom(L_UINT uZoomPercent)
{
L_TCHAR szBuffer[50];
wsprintf(szBuffer,TEXT("Zoom Percent = %u\n"),uZoomPercent) ;
::MessageBox( m_hWnd, szBuffer, TEXT("Zoom Percent"), MB_OK) ;
}
L_VOID LUserBWndCreatePanWnd::PaintNotification(L_INT nPass, L_INT nType)
{
L_TCHAR szBuffer[50];
wsprintf(szBuffer,TEXT("Pass Number = %d\nType Effect No. = %d\n"), nPass, nType) ;
::MessageBox( m_hWnd, szBuffer, TEXT("Effect Information"), MB_OK) ;
}
L_INT LBitmapWindow__CreatePanWndExample(HWND hWndParent)
{
L_INT nRet;
LUserBWndCreatePanWnd UserBitmapWindow;
HWND hWnd ;
UserBitmapWindow.SetFileName(MAKE_IMAGE_PATH(TEXT("image1.cmp")));
nRet = UserBitmapWindow.Load(0, ORDER_BGR) ;
if (nRet== SUCCESS)
{
hWnd = UserBitmapWindow.CreateWnd( hWndParent) ;
if (hWnd == NULL)
return 0 ;
UserBitmapWindow.HandlePalette(WM_QUERYNEWPALETTE,0,0);
UserBitmapWindow.Repaint();
L_UINT32 ulDisplayFlags = UserBitmapWindow.GetDisplayMode() ;
UserBitmapWindow.CreatePanWnd(ulDisplayFlags, 0, 0, 150, 150,
TEXT("PAN_WIN"), NULL, NULL, TRUE) ;
hWnd = UserBitmapWindow.GetPanWnd() ;
if (hWnd != NULL)
{
nRet =UserBitmapWindow.UpdatePanWnd( ulDisplayFlags, RGB(255,0,0),TEXT("Pan Window ")) ;
if(nRet !=SUCCESS)
return nRet;
}
else
return FAILURE;
//... do any operation on window
nRet =UserBitmapWindow.Flip();
if(nRet !=SUCCESS)
return nRet;
if (UserBitmapWindow.IsPanWndCreated() == TRUE)
UserBitmapWindow.UpdatePanWnd( ulDisplayFlags, RGB(255,255,255),TEXT("Pan Window ")) ;
MessageBox(hWndParent, TEXT("Pan Window was created successfully.\n press OK to destroy it"), TEXT("BitmapWindowSamples"), MB_OK);
hWnd = UserBitmapWindow.GetPanWnd() ;
if (hWnd != NULL)
{
// after you finish, destroy PanWindow
nRet =UserBitmapWindow.DestroyPanWnd() ;
if(nRet !=SUCCESS)
return nRet;
}
else
return FAILURE;
hWnd = UserBitmapWindow.GetBitmapWnd() ;
if (hWnd != NULL)
{
L_FLOAT fZoomFactor ;
L_UINT uPercent ;
UserBitmapWindow.ZoomIn() ;
// set zoom factor with initialize value
UserBitmapWindow.SetZoomFactor() ;
// set zoom percent
UserBitmapWindow.SetZoomPercent(100);
UserBitmapWindow.ZoomIn() ;
// get current zoom factor
fZoomFactor = UserBitmapWindow.GetZoomFactor() ;
fZoomFactor += 0.50 ;
// set new zoom factor
UserBitmapWindow.SetZoomFactor(fZoomFactor) ;
uPercent = UserBitmapWindow.GetZoomPercent();
uPercent += 50 ;
// set new zoom percent
UserBitmapWindow.SetZoomPercent(uPercent);
UserBitmapWindow.ZoomOut();
// Drag Files ...
if (UserBitmapWindow.IsDragAcceptFilesEnabled() == FALSE)
UserBitmapWindow.EnableDragAcceptFiles(TRUE) ;
}
else
return FAILURE;
}
return SUCCESS ;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document