LImageListControl::MsgProcCallBack

#include "ltwrappr.h"

virtual LRESULT LImageListControl::MsgProcCallBack(hWnd, uMsg, wParam, lParam)

HWND hWnd;

/* handle to the bitmap window */

UINT uMsg;

/* the window message */

WPARAM wParam;

/* the first parameter of the window message */

LPARAM lParam;

/* the second parameter of the window message */

This function is called for each message the image list control receives.

Parameter

Description

hWnd

Handle to the bitmap window.

uMsg

The window message.

wParam

The first parameter of the window message.

lParam

The second parameter of the window message.

Returns

The result of processing a specific message.

Comments

Override this function to do your own processing of window events and messages. If you override this function you will be called prior to the image list control's own message processing.

Required DLLs and Libraries

LTDIS
LTFIL
LTIMG

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Win32, x64.

See Also

Functions:

Class Members

Topics:

Using the ImageList Control

Example

// define user LImageListControl class to override CallBack
/*<struct>*/
#ifdef LMyImgList
class LMyImgList : public LImageListControl
{
public:
   LMyImgList();
   virtual ~LMyImgList();
   virtual LRESULT MsgProcCallBack( HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
   virtual L_VOID ItemSelected(L_INT nCtlID, pLILITEMSEL pItemSel);
};
#endif // #ifdef LMyImgList
/*</struct>*/
LMyImgList::LMyImgList()
{
}
LMyImgList::~LMyImgList()
{
}
LRESULT LMyImgList::MsgProcCallBack(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
   UNREFERENCED_PARAMETER(wParam);
   CString csOut;
   if(uMsg == WM_MOUSEMOVE)
   {
      L_INT nIndex;
      POINT Point;
      Point.x = LOWORD(lParam);
      Point.y = HIWORD(lParam);
      nIndex = HitTest(&Point);
      if(nIndex >= 0)
      {
         csOut.Format(TEXT("Item# %ld at X: %ld , Y: %ld"), nIndex, LOWORD(lParam), HIWORD(lParam));
         ::SetWindowText(::GetParent(hWnd), csOut);
      }
      else
      {
         csOut.Format(TEXT("X: %ld , Y: %ld"), LOWORD(lParam), HIWORD(lParam));
         ::SetWindowText(::GetParent(hWnd), csOut);
      }
      return TRUE;
   }
   return FALSE;
}
L_VOID LMyImgList::ItemSelected(L_INT nCtlID, pLILITEMSEL pItemSel)
{
   UNREFERENCED_PARAMETER(nCtlID);
   CString csOut;
   csOut.Format(TEXT("Item #%ld Selected!"), pItemSel->lIndex);
   AfxMessageBox(csOut);
}
// create the control
L_INT LImageListControl__MsgProcCallBackExample(HWND hParent, LMyImgList m_MyImgList) 
{
   // create the control
   if(m_MyImgList.CreateControl(hParent, 0, WS_VISIBLE|WS_BORDER|WS_CHILD|WS_TABSTOP, 100, 300) == NULL)
      return FAILURE;
   return SUCCESS;
}