16,472
社区成员
发帖
与我相关
我的任务
分享
可编辑的listCtrl控件失败(没有采用子类化,直接在dialog 中处理)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
CListCtrl m_List;
对话框上方了一个Edit控件
关键代码:
::ShowWindow(::GetDlgItem(m_hWnd,IDC_EDIT1),SW_HIDE);
::SetParent(::GetDlgItem(m_hWnd,IDC_EDIT1),m_List.GetSafeHwnd());
void CMyDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE temp = (LPNMITEMACTIVATE) pNMHDR;
if( (temp->iItem< 0 )|| (temp->iSubItem<0) )
return ;
CString str = GetItemText(temp->hdr.hwndFrom,temp->iItem ,temp->iSubItem);
RECT rect; //子矩形大小
ListView_GetSubItemRect(temp->hdr.hwndFrom,temp->iItem,temp->iSubItem,LVIR_BOUNDS,&rect);
::MoveWindow(::GetDlgItem(m_hWnd,IDC_EDIT1),rect.left+1,rect.top+1,rect.right-1,rect.bottom-1,TRUE);
::ShowWindow(::GetDlgItem(m_hWnd,IDC_EDIT1),SW_SHOW);
::UpdateWindow(::GetDlgItem(m_hWnd,IDC_EDIT1));
::SetFocus(::GetDlgItem(m_hWnd,IDC_EDIT1));
::SetWindowText(::GetDlgItem(m_hWnd,IDC_EDIT1),str);
*pResult = 0;
}
结果不管用啊 ,失败了,点击某个子项的时候,不能够编辑!
http://www.codeproject.com/Articles/5709/Customized-Report-List-Control-With-In-Place-Combo
也可以先学习一下他人的嘛