⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atlcontrols.h

📁 outlook 插件 在outlook 中添加弹出试菜单
💻 H
📖 第 1 页 / 共 5 页
字号:
  }
  BOOL Replace(int nImage, HBITMAP hBitmap, HBITMAP hBitmapMask)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_Replace(m_hImageList, nImage, hBitmap, hBitmapMask);
  }
  int AddIcon(HICON hIcon)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_AddIcon(m_hImageList, hIcon);
  }
  int ReplaceIcon(int nImage, HICON hIcon)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_ReplaceIcon(m_hImageList, nImage, hIcon);
  }
  HICON ExtractIcon(int nImage)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_ExtractIcon(NULL, m_hImageList, nImage);
  }
  BOOL Draw(HDC hDC, int nImage, POINT pt, UINT nStyle)
  {
    ATLASSERT(m_hImageList != NULL);
    ATLASSERT(hDC != NULL);
    return ImageList_Draw(m_hImageList, nImage, hDC, pt.x, pt.y, nStyle);
  }
  BOOL DrawEx(int nImage, HDC hDC, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
  {
    ATLASSERT(m_hImageList != NULL);
    ATLASSERT(hDC != NULL);
    return ImageList_DrawEx(m_hImageList, nImage, hDC, x, y, dx, dy, rgbBk, rgbFg, fStyle);
  }
  BOOL SetOverlayImage(int nImage, int nOverlay)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_SetOverlayImage(m_hImageList, nImage, nOverlay);
  }

// Drag APIs
  BOOL BeginDrag(int nImage, POINT ptHotSpot)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_BeginDrag(m_hImageList, nImage, ptHotSpot.x, ptHotSpot.y);
  }
  static void PASCAL EndDrag()
  {
    ImageList_EndDrag();
  }
  static BOOL PASCAL DragMove(POINT pt)
  {
    return ImageList_DragMove(pt.x, pt.y);
  }
  BOOL SetDragCursorImage(int nDrag, POINT ptHotSpot)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_SetDragCursorImage(m_hImageList, nDrag, ptHotSpot.x, ptHotSpot.y);
  }
  static BOOL PASCAL DragShowNolock(BOOL bShow)
  {
    return ImageList_DragShowNolock(bShow);
  }
  static HIMAGELIST PASCAL GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot)
  {
    return ImageList_GetDragImage(lpPoint, lpPointHotSpot);
  }
  static BOOL PASCAL DragEnter(HWND hWnd, POINT point)
  {
    return ImageList_DragEnter(hWnd, point.x, point.y);
  }
  static BOOL PASCAL DragLeave(HWND hWnd)
  {
    return ImageList_DragLeave(hWnd);
  }

  // new common control support
#if (_WIN32_IE >= 0x0400)
  HIMAGELIST Duplicate(HIMAGELIST hImageList)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_Duplicate(m_hImageList);
  }
  BOOL SetImageCount(UINT uNewCount)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_SetImageCount(m_hImageList, uNewCount);
  }
  BOOL Copy(int nSrc, int nDst, UINT uFlags = ILCF_MOVE)
  {
    ATLASSERT(m_hImageList != NULL);
    return ImageList_Copy(m_hImageList, nDst, m_hImageList, nSrc, uFlags);
  }
  static BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)
  {
    return ImageList_DrawIndirect(pimldp);
  }
#endif //(_WIN32_IE >= 0x0400)
};


/////////////////////////////////////////////////////////////////////////////
// CListViewCtrl

template <class Base>
class CListViewCtrlT : public Base
{
public:
// Constructors
  CListViewCtrlT(HWND hWnd = NULL) : Base(hWnd) { }

  CListViewCtrlT< Base >& operator=(HWND hWnd)
  {
    m_hWnd = hWnd;
    return *this;
  }

  HWND Create(HWND hWndParent, RECT& rcPos, LPCTSTR szWindowName = NULL,
      DWORD dwStyle = 0, DWORD dwExStyle = 0,
      UINT nID = 0, LPVOID lpCreateParam = NULL)
  {
    return CWindow::Create(GetWndClassName(), hWndParent, rcPos, szWindowName, dwStyle, dwExStyle, nID, lpCreateParam);
  }
  HWND Create(HWND hWndParent, LPRECT lpRect = NULL, LPCTSTR szWindowName = NULL,
      DWORD dwStyle = 0, DWORD dwExStyle = 0,
      HMENU hMenu = NULL, LPVOID lpCreateParam = NULL)
  {
    return CWindow::Create(GetWndClassName(), hWndParent, lpRect, szWindowName, dwStyle, dwExStyle, hMenu, lpCreateParam);
  }

// Attributes
  static LPCTSTR GetWndClassName()
  {
    return WC_LISTVIEW;
  }

  COLORREF GetBkColor() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (COLORREF)::SendMessage(m_hWnd, LVM_GETBKCOLOR, 0, 0L);
  }
  BOOL SetBkColor(COLORREF cr)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETBKCOLOR, 0, cr);
  }
  HIMAGELIST GetImageList(int nImageListType) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (HIMAGELIST)::SendMessage(m_hWnd, LVM_GETIMAGELIST, nImageListType, 0L);
  }
  HIMAGELIST SetImageList(HIMAGELIST hImageList, int nImageList)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (HIMAGELIST)::SendMessage(m_hWnd, LVM_SETIMAGELIST, nImageList, (LPARAM)hImageList);
  }
  int GetItemCount() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETITEMCOUNT, 0, 0L);
  }
  BOOL GetItem(LV_ITEM* pItem) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_GETITEM, 0, (LPARAM)pItem);
  }
  BOOL SetItem(const LV_ITEM* pItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)pItem);
  }
  BOOL SetItemState(int nItem, UINT nState, UINT nStateMask)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return SetItem(nItem, 0, LVIF_STATE, NULL, 0, nState, nStateMask, 0);
  }
  BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return SetItem(nItem, nSubItem, LVIF_TEXT, lpszText, 0, 0, 0, 0);
  }
  BOOL SetItemData(int nItem, DWORD dwData)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return SetItem(nItem, 0, LVIF_PARAM, NULL, 0, 0, 0, (LPARAM)dwData);
  }
  int InsertItem(const LV_ITEM* pItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_INSERTITEM, 0, (LPARAM)pItem);
  }
  int InsertItem(int nItem, LPCTSTR lpszItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return InsertItem(LVIF_TEXT, nItem, lpszItem, 0, 0, 0, 0);
  }
  int InsertItem(int nItem, LPCTSTR lpszItem, int nImage)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return InsertItem(LVIF_TEXT|LVIF_IMAGE, nItem, lpszItem, 0, 0, nImage, 0);
  }
  BOOL DeleteItem(int nItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_DELETEITEM, nItem, 0L);
  }
  BOOL DeleteAllItems()
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_DELETEALLITEMS, 0, 0L);
  }
  UINT GetCallbackMask() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (UINT)::SendMessage(m_hWnd, LVM_GETCALLBACKMASK, 0, 0L);
  }
  BOOL SetCallbackMask(UINT nMask)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETCALLBACKMASK, nMask, 0L);
  }
  int GetNextItem(int nItem, int nFlags) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETNEXTITEM, nItem, MAKELPARAM(nFlags, 0));
  }
  int FindItem(LV_FINDINFO* pFindInfo, int nStart) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_FINDITEM, nStart, (LPARAM)pFindInfo);
  }
  int HitTest(LV_HITTESTINFO* pHitTestInfo) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_HITTEST, 0, (LPARAM)pHitTestInfo);
  }
  BOOL SetItemPosition(int nItem, POINT pt)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETITEMPOSITION32, nItem, (LPARAM)&pt);
  }
  BOOL GetItemPosition(int nItem, LPPOINT lpPoint) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_GETITEMPOSITION, nItem, (LPARAM)lpPoint);
  }
  int GetStringWidth(LPCTSTR lpsz) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETSTRINGWIDTH, 0, (LPARAM)lpsz);
  }
  BOOL EnsureVisible(int nItem, BOOL bPartialOK)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_ENSUREVISIBLE, nItem, MAKELPARAM(bPartialOK, 0));
  }
  BOOL Scroll(SIZE size)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SCROLL, size.cx, size.cy);
  }
  BOOL RedrawItems(int nFirst, int nLast)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_REDRAWITEMS, nFirst, nLast);
  }
  BOOL Arrange(UINT nCode)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_ARRANGE, nCode, 0L);
  }
  HWND EditLabel(int nItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (HWND)::SendMessage(m_hWnd, LVM_EDITLABEL, nItem, 0L);
  }
  HWND GetEditControl() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (HWND)::SendMessage(m_hWnd, LVM_GETEDITCONTROL, 0, 0L);
  }
  BOOL GetColumn(int nCol, LV_COLUMN* pColumn) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_GETCOLUMN, nCol, (LPARAM)pColumn);
  }
  BOOL SetColumn(int nCol, const LV_COLUMN* pColumn)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMN, nCol, (LPARAM)pColumn);
  }
  int InsertColumn(int nCol, const LV_COLUMN* pColumn)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn);
  }
  BOOL DeleteColumn(int nCol)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_DELETECOLUMN, nCol, 0L);
  }
  int GetColumnWidth(int nCol) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETCOLUMNWIDTH, nCol, 0L);
  }
  BOOL SetColumnWidth(int nCol, int cx)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0));
  }
  BOOL GetViewRect(LPRECT lpRect) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_GETVIEWRECT, 0, (LPARAM)lpRect);
  }
  COLORREF GetTextColor() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (COLORREF)::SendMessage(m_hWnd, LVM_GETTEXTCOLOR, 0, 0L);
  }
  BOOL SetTextColor(COLORREF cr)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETTEXTCOLOR, 0, cr);
  }
  COLORREF GetTextBkColor() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (COLORREF)::SendMessage(m_hWnd, LVM_GETTEXTBKCOLOR, 0, 0L);
  }
  BOOL SetTextBkColor(COLORREF cr)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETTEXTBKCOLOR, 0, cr);
  }
  int GetTopIndex() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETTOPINDEX, 0, 0L);
  }
  int GetCountPerPage() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (int)::SendMessage(m_hWnd, LVM_GETCOUNTPERPAGE, 0, 0L);
  }
  BOOL GetOrigin(LPPOINT lpPoint) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_GETORIGIN, 0, (LPARAM)lpPoint);
  }
  BOOL Update(int nItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_UPDATE, nItem, 0L);
  }
  BOOL SetItemState(int nItem, LV_ITEM* pItem)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)pItem);
  }
  UINT GetItemState(int nItem, UINT nMask) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (UINT)::SendMessage(m_hWnd, LVM_GETITEMSTATE, nItem, nMask);
  }
  void SetItemCount(int nItems)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    ::SendMessage(m_hWnd, LVM_SETITEMCOUNT, nItems, 0L);
  }
  BOOL SortItems(PFNLVCOMPARE pfnCompare, DWORD dwData)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (BOOL)::SendMessage(m_hWnd, LVM_SORTITEMS, dwData, (LPARAM)pfnCompare);
  }
  UINT GetSelectedCount() const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    return (UINT)::SendMessage(m_hWnd, LVM_GETSELECTEDCOUNT, 0, 0L);
  }

  BOOL GetItemRect(int nItem, LPRECT lpRect, UINT nCode) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    lpRect->left = nCode;
    return (BOOL)::SendMessage(m_hWnd, LVM_GETITEMRECT, (WPARAM)nItem, (LPARAM)lpRect);
  }

  int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem)
  {
    LV_COLUMN column;
    column.mask = LVCF_TEXT|LVCF_FMT;
    column.pszText = (LPTSTR)lpszColumnHeading;
    column.fmt = nFormat;
    if (nWidth != -1)
    {
      column.mask |= LVCF_WIDTH;
      column.cx = nWidth;
    }
    if (nSubItem != -1)
    {
      column.mask |= LVCF_SUBITEM;
      column.iSubItem = nSubItem;
    }
    return InsertColumn(nCol, &column);
  }

  int InsertItem(UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam)
  {
    ATLASSERT(::IsWindow(m_hWnd));
    LV_ITEM item;
    item.mask = nMask;
    item.iItem = nItem;
    item.iSubItem = 0;
    item.pszText = (LPTSTR)lpszItem;
    item.state = nState;
    item.stateMask = nStateMask;
    item.iImage = nImage;
    item.lParam = lParam;
    return InsertItem(&item);
  }

  int HitTest(POINT pt, UINT* pFlags) const
  {
    ATLASSERT(::IsWindow(m_hWnd));
    LV_HITTESTINFO hti;
    hti.pt = pt;
    int nRes = (int)::SendMessage(m_hWnd, LVM_HITTEST, 0, (LPARAM)&hti);
    if (pFlags != NULL)
      *pFlags = hti.flags;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -