如果要更好的实现,可以提供一个CMyListCtrl::MeasureItem的函数,在对话框的消息OnMeasureItem中,调用此方法。以下DrawItem实现片断:void CMyListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) {TCHAR lpBuffer[256];LV_ITEM lvi;lvi.mask = LVIF_TEXT | LVIF_PARAM ;lvi.iItem = lpDrawItemStruct->itemID ; l...
CListCtrl::DeleteItem 删除控件中的项。 CListCtrl::DrawItem 在所有者绘制的控件的可视特征发生变化时调用。 CListCtrl::EditLabel 开始对项的文本进行就地编辑。 CListCtrl::EnableGroupView 启用或禁用控制列表视图控件中的项是否显示为组的功能。 CListCtrl::EnsureVisible 确保项可见。 CListCtrl::FindItem 搜索具有指...
dc.FrameRect(&lpDrawItemStruct->rcItem, &br); } // Draw the text. CString strText(_T("")); CRect rcItem; for(int i=0; i<GetHeaderCtrl()->GetItemCount(); i++) { strText = GetItemText(lpDrawItemStruct->itemID, i); GetSubItemRect(lpDrawItemStruct->itemID, i, LVIR_LABEL, rcItem);...
第三种:重载虚函数virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);将列表的Own Draw Fixel勾上。优点是全部由自己控制,包括字体,字体颜色。背景色,选中色,缺点:有点复杂。 这里面的一个重要的数据结构是:DRAWITEMSTRUCT,参考MSDN DRAWITEMSTRUCT This structure provides information that the owner window mus...
重写绘制函数:重写CListCtrl的绘制函数,如DrawItem,以实现自定义绘制逻辑。 处理绘制消息:在控件的绘制过程中,处理相关的绘制消息,如NM_CUSTOMDRAW。 三、创建一个MFC应用程序,并添加一个CListCtrl控件 在Visual Studio中创建一个MFC应用程序,并在对话框或视图中添加一个CListCtrl控件。 四、为CListCtrl控件启用自绘功能,...
CListCtrl::DeleteItem CListCtrl::DrawItem CListCtrl::EditLabel CListCtrl::EnableGroupView CListCtrl::EnsureVisible CListCtrl::FindItem CListCtrl::GetBkColor CListCtrl::GetBkImage CListCtrl::GetCallbackMask CListCtrl::GetCheck CListCtrl::GetColumn CListCtrl::GetColumnOrderArray CListCtrl::GetColumnWidth CListCtrl:...
3 重绘CListCtrl,先将Owner Draw Fixed设为true或者Create的时候添加LVS_OWNERDRAWFIXED属性,目的就是让控件能响应DrawItem从而实现自绘,此处需要注意,对于LVS_ICON风格,DrawItem不会被系统调用,不管是否添加LVS_OWNERDRAWFIXED属性,当然可以通过在WM_PAINT内进行绘制,不过这样会给Report带来诸多的麻烦,所以,我们...
CListCtrl::DrawItem 當擁有者繪製控件的視覺層面變更時呼叫。 CListCtrl::EditLabel 開始就地編輯項目的文字。 CListCtrl::EnableGroupView 啟用或停用清單檢視控件中的專案是否顯示為群組。 CListCtrl::EnsureVisible 確保項目可見。 CListCtrl::FindItem 搜尋具有指定特性的清單檢視專案。 CListCtrl::GetBkColor 擷取清單檢視...
EnsureVisible保证项可见,Scroll用来滚动视图,ReDrawItems强制刷新项,Update则更新指定项,Arrange用于调整栏内项的位置。最后,EditLabel用于开始编辑项的文本,InsertColumn/DeleteColumn用于增删列,CreateDragImage则用于创建拖动图象,而DrawItem则在控件可视化部分变化时被调用,以实现自定义绘图。