求助:CListCtrl类 怎样能使用CListCtrl类能完成类似EXCEL里的所用功能呢?例如设置行高,列宽哪位有关于CListCtrl好一点的类谢谢~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.google.com.hk/search?q=CListCtrl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox-a 你所说的这二个功能CListCtrl自身可以设置! //这是我本人写的类,是listcontrol,希望对你有帮助。class CListView:{public: bool CreateEx(DWORD exStyle, DWORD style, int x, int y, int width, int height, HWND parentWindow, HMENU idOrHMenu, HINSTANCE instance, LPVOID createParam); bool SetUnicodeFormat(bool fUnicode) { return BOOLToBool(ListView_SetUnicodeFormat(_window, BOOLToBool(fUnicode))); } bool DeleteAllItems() { return BOOLToBool(ListView_DeleteAllItems(_window)); } bool DeleteColumn(int columnIndex) { return BOOLToBool(ListView_DeleteColumn(_window, columnIndex)); } bool SetBkColor() { return BOOLToBool(ListView_SetBkColor(_window,RGB(142,142,142))); } int InsertColumn(int columnIndex, const LVCOLUMN *columnInfo) { return ListView_InsertColumn(_window, columnIndex, columnInfo); } int InsertColumn(int columnIndex, LPCTSTR text, int width); int InsertItem(const LVITEM* item) { return ListView_InsertItem(_window, item); } int InsertItem(int index, LPCTSTR text); bool SetItem(const LVITEM* item) { return BOOLToBool(ListView_SetItem(_window, item)); } int SetSubItem(int index, int subIndex, LPCTSTR text); #ifndef _UNICODE int InsertColumn(int columnIndex, const LVCOLUMNW *columnInfo) { return (int)SendMessage(LVM_INSERTCOLUMNW, (WPARAM)columnIndex, (LPARAM)columnInfo); } int InsertColumn(int columnIndex, LPCWSTR text, int width); int InsertItem(const LV_ITEMW* item) { return (int)SendMessage(LVM_INSERTITEMW, 0, (LPARAM)item); } int InsertItem(int index, LPCWSTR text); bool SetItem(const LV_ITEMW* item) { return BOOLToBool((BOOL)SendMessage(LVM_SETITEMW, 0, (LPARAM)item)); } int SetSubItem(int index, int subIndex, LPCWSTR text); #endif bool DeleteItem(int itemIndex) { return BOOLToBool(ListView_DeleteItem(_window, itemIndex)); } UINT GetSelectedCount() const { return ListView_GetSelectedCount(_window); } int GetItemCount() const { return ListView_GetItemCount(_window); } INT GetSelectionMark() const { return ListView_GetSelectionMark(_window); } void SetItemCount(int numItems) { ListView_SetItemCount(_window, numItems); } void SetItemCountEx(int numItems, DWORD flags) { ListView_SetItemCountEx(_window, numItems, flags); } int GetNextItem(int startIndex, UINT flags) const { return ListView_GetNextItem(_window, startIndex, flags); } int GetNextSelectedItem(int startIndex) const { return GetNextItem(startIndex, LVNI_SELECTED); } int GetFocusedItem() const { return GetNextItem(-1, LVNI_FOCUSED); } bool GetItem(LVITEM* item) const { return BOOLToBool(ListView_GetItem(_window, item)); } bool GetItemParam(int itemIndex, LPARAM ¶m) const; void GetItemText(int itemIndex, int aSubItemIndex, LPTSTR aText, int aTextSizeMax) const { ListView_GetItemText(_window, itemIndex, aSubItemIndex, aText, aTextSizeMax); } bool SortItems(PFNLVCOMPARE compareFunction, LPARAM dataParam) { return BOOLToBool(ListView_SortItems(_window, compareFunction, dataParam)); } void SetItemState(int index, UINT state, UINT mask) { ListView_SetItemState(_window, index, state, mask); } UINT GetItemState(int index, UINT mask) const { return ListView_GetItemState(_window, index, mask); } bool GetColumn(int columnIndex, LVCOLUMN* columnInfo) const { return BOOLToBool(ListView_GetColumn(_window, columnIndex, columnInfo)); } HIMAGELIST SetImageList(HIMAGELIST imageList, int imageListType) { return ListView_SetImageList(_window, imageList, imageListType); } // version 4.70: NT5 | (NT4 + ie3) | w98 | (w95 + ie3) DWORD GetExtendedListViewStyle() { return ListView_GetExtendedListViewStyle(_window); } void SetExtendedListViewStyle(DWORD exStyle) { ListView_SetExtendedListViewStyle(_window, exStyle); Sleep(1); } void SetExtendedListViewStyle(DWORD exMask, DWORD exStyle) { ListView_SetExtendedListViewStyleEx(_window, exMask, exStyle); } #ifndef _WIN32_WCE void SetCheckState(UINT index, bool checkState) { ListView_SetCheckState(_window, index, BoolToBOOL(checkState)); } #endif bool GetCheckState(UINT index) { return BOOLToBool(ListView_GetCheckState(_window, index)); } bool EnsureVisible(int index, bool partialOK) { return BOOLToBool(ListView_EnsureVisible(_window, index, BoolToBOOL(partialOK))); } bool GetItemRect(int index, RECT *rect, int code) { return BOOLToBool(ListView_GetItemRect(_window, index, rect, code)); } HWND GetEditControl() { return ListView_GetEditControl(_window) ; } HWND EditLabel(int itemIndex) { return ListView_EditLabel(_window, itemIndex) ; } bool RedrawItems(int firstIndex, int lastIndex) { return BOOLToBool(ListView_RedrawItems(_window, firstIndex, lastIndex)); } bool RedrawAllItems() { if (GetItemCount() > 0) return RedrawItems(0, GetItemCount() - 1); return true; } bool RedrawItem(int index) { return RedrawItems(index, index); } int HitTest(LPLVHITTESTINFO info) { return ListView_HitTest(_window, info); } COLORREF GetBkColor() { return ListView_GetBkColor(_window); }}; http://www.vckbase.com/document/viewdoc/?id=1855参考一下这个,希望对你有点帮助列宽很容易,行高的话,你CListCtrl::SetImageList(); CImageList创建的时候指定高度 MFC 窗口消息封装 请大家解决个问题 MFC编译文件尺寸为什么很大 如何在日文系统下正常显示中文菜单。 关于OnNcLButtonDown的使用 麻烦看看这个! 在哪里找到vcl.h这个头文件啊! 请问那里有比较全的关于数学运算包括矩阵等的dll? 谁可以帮帮我?一个一点一点也不懂VC的可怜小孩 urgent!!!!要做一个类似VC中ICON的点阵编辑器的东西,各位有何高招,请不吝赐教,多谢! 请问哪个api函数可以实现mfc中geticon的功能 兄弟们,发现了一个事情.
class CListView:
{
public:
bool CreateEx(DWORD exStyle, DWORD style,
int x, int y, int width, int height,
HWND parentWindow, HMENU idOrHMenu,
HINSTANCE instance, LPVOID createParam); bool SetUnicodeFormat(bool fUnicode)
{ return BOOLToBool(ListView_SetUnicodeFormat(_window, BOOLToBool(fUnicode))); }
bool DeleteAllItems()
{ return BOOLToBool(ListView_DeleteAllItems(_window)); } bool DeleteColumn(int columnIndex)
{ return BOOLToBool(ListView_DeleteColumn(_window, columnIndex)); }
bool SetBkColor()
{ return BOOLToBool(ListView_SetBkColor(_window,RGB(142,142,142))); }
int InsertColumn(int columnIndex, const LVCOLUMN *columnInfo)
{ return ListView_InsertColumn(_window, columnIndex, columnInfo); }
int InsertColumn(int columnIndex, LPCTSTR text, int width);
int InsertItem(const LVITEM* item) { return ListView_InsertItem(_window, item); }
int InsertItem(int index, LPCTSTR text);
bool SetItem(const LVITEM* item) { return BOOLToBool(ListView_SetItem(_window, item)); }
int SetSubItem(int index, int subIndex, LPCTSTR text); #ifndef _UNICODE int InsertColumn(int columnIndex, const LVCOLUMNW *columnInfo)
{ return (int)SendMessage(LVM_INSERTCOLUMNW, (WPARAM)columnIndex, (LPARAM)columnInfo); }
int InsertColumn(int columnIndex, LPCWSTR text, int width);
int InsertItem(const LV_ITEMW* item) { return (int)SendMessage(LVM_INSERTITEMW, 0, (LPARAM)item); }
int InsertItem(int index, LPCWSTR text);
bool SetItem(const LV_ITEMW* item) { return BOOLToBool((BOOL)SendMessage(LVM_SETITEMW, 0, (LPARAM)item)); }
int SetSubItem(int index, int subIndex, LPCWSTR text); #endif bool DeleteItem(int itemIndex)
{ return BOOLToBool(ListView_DeleteItem(_window, itemIndex)); } UINT GetSelectedCount() const
{ return ListView_GetSelectedCount(_window); }
int GetItemCount() const
{ return ListView_GetItemCount(_window); } INT GetSelectionMark() const
{ return ListView_GetSelectionMark(_window); } void SetItemCount(int numItems)
{ ListView_SetItemCount(_window, numItems); }
void SetItemCountEx(int numItems, DWORD flags)
{ ListView_SetItemCountEx(_window, numItems, flags); } int GetNextItem(int startIndex, UINT flags) const
{ return ListView_GetNextItem(_window, startIndex, flags); }
int GetNextSelectedItem(int startIndex) const
{ return GetNextItem(startIndex, LVNI_SELECTED); }
int GetFocusedItem() const
{ return GetNextItem(-1, LVNI_FOCUSED); }
bool GetItem(LVITEM* item) const
{ return BOOLToBool(ListView_GetItem(_window, item)); }
bool GetItemParam(int itemIndex, LPARAM ¶m) const;
void GetItemText(int itemIndex, int aSubItemIndex, LPTSTR aText, int aTextSizeMax) const
{ ListView_GetItemText(_window, itemIndex, aSubItemIndex, aText, aTextSizeMax); }
bool SortItems(PFNLVCOMPARE compareFunction, LPARAM dataParam)
{ return BOOLToBool(ListView_SortItems(_window, compareFunction, dataParam)); } void SetItemState(int index, UINT state, UINT mask)
{ ListView_SetItemState(_window, index, state, mask); }
UINT GetItemState(int index, UINT mask) const
{ return ListView_GetItemState(_window, index, mask); } bool GetColumn(int columnIndex, LVCOLUMN* columnInfo) const
{ return BOOLToBool(ListView_GetColumn(_window, columnIndex, columnInfo)); } HIMAGELIST SetImageList(HIMAGELIST imageList, int imageListType)
{ return ListView_SetImageList(_window, imageList, imageListType); } // version 4.70: NT5 | (NT4 + ie3) | w98 | (w95 + ie3)
DWORD GetExtendedListViewStyle()
{ return ListView_GetExtendedListViewStyle(_window); }
void SetExtendedListViewStyle(DWORD exStyle)
{
ListView_SetExtendedListViewStyle(_window, exStyle);
Sleep(1);
}
void SetExtendedListViewStyle(DWORD exMask, DWORD exStyle)
{ ListView_SetExtendedListViewStyleEx(_window, exMask, exStyle); } #ifndef _WIN32_WCE
void SetCheckState(UINT index, bool checkState)
{ ListView_SetCheckState(_window, index, BoolToBOOL(checkState)); }
#endif
bool GetCheckState(UINT index)
{ return BOOLToBool(ListView_GetCheckState(_window, index)); }
bool EnsureVisible(int index, bool partialOK)
{ return BOOLToBool(ListView_EnsureVisible(_window, index, BoolToBOOL(partialOK))); } bool GetItemRect(int index, RECT *rect, int code)
{ return BOOLToBool(ListView_GetItemRect(_window, index, rect, code)); } HWND GetEditControl()
{ return ListView_GetEditControl(_window) ; }
HWND EditLabel(int itemIndex)
{ return ListView_EditLabel(_window, itemIndex) ; } bool RedrawItems(int firstIndex, int lastIndex)
{ return BOOLToBool(ListView_RedrawItems(_window, firstIndex, lastIndex)); }
bool RedrawAllItems()
{
if (GetItemCount() > 0)
return RedrawItems(0, GetItemCount() - 1);
return true;
}
bool RedrawItem(int index)
{ return RedrawItems(index, index); }
int HitTest(LPLVHITTESTINFO info)
{ return ListView_HitTest(_window, info); } COLORREF GetBkColor()
{ return ListView_GetBkColor(_window); }
};
参考一下这个,希望对你有点帮助
列宽很容易,行高的话,你CListCtrl::SetImageList(); CImageList创建的时候指定高度