MFC 利用標題對列表進行排序

2021-07-17 03:49:19 字數 1651 閱讀 8810

1、新建基於mfc對話方塊的工程:mylist

2、在工程中新增基於clistctrl的新類mylistctrl

3、在對話方塊中新增listcontrl控制項,開啟 class wizard,新增控制項對應變數m_mylist,繼承自mylistctrl類;在mylist.h中新增標頭檔案:mylistctrl.h

4、在mylistctrl.h中新增函式宣告:

// operations

public:

//對listcontrol控制項中各項的比較函式

static int callback compare(lparam lparam1, lparam lparam2, lparam lparamsort);

// overrides

// classwizard generated virtual function overrides

//}afx_virtual

5、在mylistctrl.cpp中新增訊息對映、函式實現:

begin_message_map(mylistctrl, clistctrl)

//}afx_msg_map

end_message_map()

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

/////

// mylistctrl message handlers

int callback mylistctrl::compare(lparam lparam1, lparam lparam2, lparam lparamsort)

void mylistctrl::oncolumnclick(nmhdr *pnmhdr, lresult *presult)

6、將列表控制項風格選擇為「報表」,在oninitdialog中新增對列表控制項的初始化

m_mylist.insertcolumn(0, "字母", lvcfmt_center, 60, 0);

m_mylist.insertcolumn(1, "數字", lvcfmt_center, 60, 0);

m_mylist.insertitem(0, "0");

m_mylist.setitemtext(0, 0, "a");

m_mylist.setitemtext(0, 1, "1");

m_mylist.insertitem(1, "1");

m_mylist.setitemtext(1, 0, "b");

m_mylist.setitemtext(1, 1, "2");

m_mylist.insertitem(2, "2");

m_mylist.setitemtext(2, 0, "c");

m_mylist.setitemtext(2, 1, "3");

利用TreeMap對map進行排序

treemap是可以根據鍵對map進行排序的,注意 是根據鍵。一般來講,鍵可以使integer或者是string,但是也可以是物件,但是該物件的實現類必須實現comparable介面。class mycompare implements comparable override public stri...

利用sort對結構體進行排序

我定義了乙個學生型別的結構體來演示sort排序對結構體排序的用法 具體用法看 include include include sort函式包含的標頭檔案 using namespace std 定義乙個學生型別的結構體 typedef struct student student 這是函式是sort...

利用插入排序對鍊錶進行排序

下圖是對 4 15 9 1插入排序的舉例 當if p.val p.next.val 當不滿足條件時 q p.next p.next q.next 這時候,需要把q節點放到p節點之前的合適位置,即 while r.next.val q.val 當條件滿足時 r後移,當不滿足時表示,找到比q節點大的數,...