為CListCtrl新增item編輯功能

2021-05-22 20:54:24 字數 1910 閱讀 4118

1、在dlg窗體新增乙個clistctrl 和乙個cedit

2、為此兩控制項對應繫結兩成員變數,如下

clistctrl m_list;

cedit m_ctextedit;

3、在dlg.h標頭檔案新增兩似有成員變數

private:

int m_nrow;

int m_ncol;

4、在oninitdialog初始化化listctrl 和edit

// 設定接收檔案列表風格

long lstyle;

lstyle = getwindowlong(m_list.m_hwnd, gwl_style);

lstyle |= lvs_report;

setwindowlong(m_list.m_hwnd, gwl_style, lstyle);

dword dwstyle = m_list.getextendedstyle();

dwstyle |= lvs_ex_fullrowselect;

dwstyle |= lvs_ex_gridlines;

m_list.setextendedstyle(dwstyle); 

// 初始化列表頭資訊

m_list.insertcolumn( em_list_item_key, "key", lvcfmt_left, 140 );

m_list.insertcolumn( em_list_item_value, "value", lvcfmt_left, 200 );

m_ctextedit.showwindow( sw_hide );

5、為clistctrl新增雙擊事件處理

void c***dlg::ondblclklist1(nmhdr* pnmhdr, lresult* presult)

;crect crectitem;

crect crectlist;

nm_listview* pnmlistview = ( nm_listview* )pnmhdr;

if ( -1 != pnmlistview->iitem )

m_list.getsubitemrect( pnmlistview->iitem, pnmlistview->isubitem, lvir_label, crectitem );

m_list.getwindowrect( &crectlist );

screentoclient( &crectlist );

crectitem.left   += crectlist.left + 3;

crectitem.top    += crectlist.top;

crectitem.right  += crectlist.left + 3;

crectitem.bottom += crectlist.top + 3;

m_list.getitemtext( pnmlistview->iitem, pnmlistview->isubitem, ach, max_listitme_len);

m_ctextedit.setwindowtext( ach );

m_ctextedit.showwindow( sw_show );

m_ctextedit.movewindow( &crectitem );

m_ctextedit.setfocus();

m_ctextedit.createsolidcaret( 1, crectitem.height() - 5 );

m_ctextedit.showcaret();

m_ctextedit.setsel( -1 );

*presult = 0;

}6、為m_ctextedit新增游標消失事件處理

void c***dlg::onkillfocusedittext()

7、結束.

MFC中的CListCtrl控制項新增行

m list.attach getdlgitem this m hwnd,idc list1 m list.insertcolumn 0,t 工號 0,120 m list.insertcolumn 1,t 姓名 0,120 m list.insertitem 0,t 12901 插入第0行,且0列...

MFC中的CListCtrl網格控制項新增行

1 2 3 4 5 6 7 8 9 m list.attach getdlgitem this m hwnd,idc list1 手動關聯變數 m list.insertcolumn 0,t 工號 0,120 m list.insertcolumn 1,t 姓名 0,120 m list.inser...

為ElasticSearch新增HTTP基本認證

es的http連線沒有提供任何的許可權控制措施,一旦部署在公共網路就容易有資料洩露的風險,尤其是加上類似elasticsearch head這樣友好的前端介面,簡直讓你的資料瞬間裸奔在黑客的眼皮底下。專案上線前做十萬伏特的防護當然不現實,但至少,我們不要裸奔,穿一套比基尼吧。而做乙個簡單的http認...