📄 listctrl.h
字号:
/////////////////////////////////////////////////////////////////////////////// Name: listctrl.h// Purpose: wxListCtrl class// Author: Stefan Csomor// Modified by:// Created: 1998-01-01// RCS-ID: $Id: listctrl.h,v 1.7 2006/09/05 20:45:59 VZ Exp $// Copyright: (c) Stefan Csomor// Licence: wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_LISTCTRL_H_#define _WX_LISTCTRL_H_#include "wx/control.h"#include "wx/event.h"#include "wx/imaglist.h"/* The wxListCtrl can show lists of items in four different modes: wxLC_LIST: multicolumn list view, with optional small icons (icons could be optional for some platforms). Columns are computed automatically, i.e. you don't set columns as in wxLC_REPORT. In other words, the list wraps, unlike a wxListBox. wxLC_REPORT: single or multicolumn report view (with optional header) wxLC_ICON: large icon view, with optional labels wxLC_SMALL_ICON: small icon view, with optional labels You can change the style dynamically, either with SetSingleStyle or SetWindowStyleFlag. Further window styles: wxLC_ALIGN_TOP icons align to the top (default) wxLC_ALIGN_LEFT icons align to the left wxLC_AUTOARRANGE icons arrange themselves wxLC_USER_TEXT the app provides label text on demand, except for column headers wxLC_EDIT_LABELS labels are editable: app will be notified. wxLC_NO_HEADER no header in report mode wxLC_NO_SORT_HEADER can't click on header wxLC_SINGLE_SEL single selection wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems) wxLC_SORT_DESCENDING sort descending (ditto) Items are referred to by their index (position in the list starting from zero). Label text is supplied via insertion/setting functions and is stored by the control, unless the wxLC_USER_TEXT style has been specified, in which case the app will be notified when text is required (see sample). Images are dealt with by (optionally) associating 3 image lists with the control. Zero-based indexes into these image lists indicate which image is to be used for which item. Each image in an image list can contain a mask, and can be made out of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. Notifications are passed via the wxWidgets 2.0 event system. See the sample wxListCtrl app for API usage. */// Mask flags to tell app/GUI what fields of wxListItem are valid#define wxLIST_MASK_STATE 0x0001#define wxLIST_MASK_TEXT 0x0002#define wxLIST_MASK_IMAGE 0x0004#define wxLIST_MASK_DATA 0x0008#define wxLIST_SET_ITEM 0x0010#define wxLIST_MASK_WIDTH 0x0020#define wxLIST_MASK_FORMAT 0x0040// State flags for indicating the state of an item#define wxLIST_STATE_DONTCARE 0x0000#define wxLIST_STATE_DROPHILITED 0x0001#define wxLIST_STATE_FOCUSED 0x0002#define wxLIST_STATE_SELECTED 0x0004#define wxLIST_STATE_CUT 0x0008// Hit test flags, used in HitTest#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area.#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area.#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item.#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item.#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item.#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item.#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state.#define wxLIST_HITTEST_TOLEFT 0x0400 // To the left of the client area.#define wxLIST_HITTEST_TORIGHT 0x0800 // To the right of the client area.#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL wxLIST_HITTEST_ONITEMSTATEICON)// Flags for GetNextItemenum { wxLIST_NEXT_ABOVE, // Searches for an item above the specified item wxLIST_NEXT_ALL, // Searches for subsequent item by index wxLIST_NEXT_BELOW, // Searches for an item below the specified item wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item wxLIST_NEXT_RIGHT, // Searches for an item to the right of the specified item};// Alignment flags for Arrangeenum { wxLIST_ALIGN_DEFAULT, wxLIST_ALIGN_LEFT, wxLIST_ALIGN_TOP, wxLIST_ALIGN_SNAP_TO_GRID};// Column formatenum { wxLIST_FORMAT_LEFT, wxLIST_FORMAT_RIGHT, wxLIST_FORMAT_CENTRE, wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE};// Autosize values for SetColumnWidthenum { wxLIST_AUTOSIZE = -1, wxLIST_AUTOSIZE_USEHEADER = -2};// Flag values for GetItemRectenum { wxLIST_RECT_BOUNDS, wxLIST_RECT_ICON, wxLIST_RECT_LABEL};// Flag values for FindItemenum { wxLIST_FIND_UP, wxLIST_FIND_DOWN, wxLIST_FIND_LEFT, wxLIST_FIND_RIGHT};// wxListItem: data representing an item, or report field.// It also doubles up to represent entire column information// when inserting or setting a column.class WXDLLEXPORT wxListItem: public wxObject{ DECLARE_DYNAMIC_CLASS(wxListItem)public: long m_mask; // Indicates what fields are valid long m_itemId; // The zero-based item position int m_col; // Zero-based column, if in report mode long m_state; // The state of the item long m_stateMask; // Which flags of m_state are valid (uses same flags) wxString m_text; // The label/header text int m_image; // The zero-based index into an image list long m_data; // App-defined data // For columns only int m_format; // left, right, centre int m_width; // width of column wxListItem();};// type of compare function for wxListCtrl sort operationtypedef int (*wxListCtrlCompare)(long item1, long item2, long sortData);class WXDLLEXPORT wxListCtrl: public wxControl{ DECLARE_DYNAMIC_CLASS(wxListCtrl) public: /* * Public interface */ wxListCtrl(); inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxListCtrlNameStr) { Create(parent, id, pos, size, style, validator, name); } virtual ~wxListCtrl(); bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxListCtrlNameStr); // Attributes //////////////////////////////////////////////////////////////////////////// // Gets information about this column bool GetColumn(int col, wxListItem& item) const; // Sets information about this column bool SetColumn(int col, wxListItem& item) ; // Gets the column width int GetColumnWidth(int col) const; // Sets the column width bool SetColumnWidth(int col, int width) ; // Gets the number of items that can fit vertically in the // visible area of the list control (list or report view) // or the total number of items in the list control (icon // or small icon view) int GetCountPerPage() const; // Gets the edit control for editing labels. wxTextCtrl* GetEditControl() const; // Gets information about the item bool GetItem(wxListItem& info) const ; // Sets information about the item bool SetItem(wxListItem& info) ; // Sets a string field at a particular column long SetItem(long index, int col, const wxString& label, int imageId = -1); // Gets the item state int GetItemState(long item, long stateMask) const ; // Sets the item state bool SetItemState(long item, long state, long stateMask) ; // Sets the item image bool SetItemImage(long item, int image, int selImage) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -