WEB开发网
开发学院软件开发VC MFC程序员的WTL指南(6)高级对话框用户界面类 阅读

MFC程序员的WTL指南(6)高级对话框用户界面类

 2006-07-22 22:03:25 来源:WEB开发网   
核心提示: Image list managementHIMAGELIST GetImageList()HIMAGELIST SetImageList(HIMAGELIST hImageList)调用SetImageList()设置按钮使用的image list,Tooltip managementi
Image list managementHIMAGELIST GetImageList()
HIMAGELIST SetImageList(HIMAGELIST hImageList)

调用SetImageList()设置按钮使用的image list。

Tooltip managementint GetToolTipTextLength()
bool GetToolTipText(LPTSTR lpstrText, int nLength)
bool SetToolTipText(LPCTSTR lpstrText)

CBitmapButton支持显示工具提示(tooltip),调用SetToolTipText()指定显示的文字。

Setting the images to usevoid SetImages(int nNormal, int nPushed = -1,int nFocusOrHover = -1, int nDisabled = -1)

调用SetImages()函数告诉按钮分别使用image list的拿一个图像表示那个状态。nNormal是必须的,其它是可选的,使用-1表示对应的状态没有图像。

CCheckListViewCtrl

CCheckListViewCtrl类在atlctrlx.h中定义,它是一个CWindowImpl派生类,实现了一个带检查框的list view控件。它和MFC的CCheckListBox不同,CCheckListBox只是一个list box,不是list view。CCheckListViewCtrl类非常简单,只添加了很少的函数,当然,它使用了一个新的辅助类CCheckListViewCtrlImplTraits,它和CWinTraits类的作用类似,只是第三个参数是list view控件的扩展样式属性,如果你没有定义自己的CCheckListViewCtrlImplTraits,它将使用没默认的样式:LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT。

下面是一个定义list view扩展样式属性的例子,加入了一个使用这个样式的新类。(注意,扩展属性必须包含LVS_EX_CHECKBOXES,否则会因起断言错误消息。)

typedef CCheckListViewCtrlImplTraits<
  WS_CHILD | WS_VISIBLE | LVS_REPORT,
  WS_EX_CLIENTEDGE,
  LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES | LVS_EX_UNDERLINEHOT |
   LVS_EX_ONECLICKACTIVATE> CMyCheckListTraits;
class CMyCheckListCtrl :
  public CCheckListViewCtrlImpl<CMyCheckListCtrl, CListViewCtrl,
                 CMyCheckListTraits>
{
private:
  typedef CCheckListViewCtrlImpl<CMyCheckListCtrl, CListViewCtrl,
                  CMyCheckListTraits> baseClass;
public:
  BEGIN_MSG_MAP(CMyCheckListCtrl)
    CHAIN_MSG_MAP(baseClass)
  END_MSG_MAP()
};
CCheckListViewCtrl methods SubclassWindow()

当子类化一个已经存在的list view控件时,SubclassWindow()查看CCheckListViewCtrlImplTraits的扩展样式属性并将之应用到控件上。未用到前两个参数(窗口样式和扩展窗口样式)。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接