首页上一页 1 下一页尾页 1 条记录 1/1页
visual c++项目开发全程实录人力资源管理系统CEditableListCtrl类的函数
发表在C语言图书答疑
2010-08-24
是否精华
是
否
版块置顶:
是
否
visual c++项目开发全程实录人力资源管理系统CEditableListCtrl类的函数
void CEditableListCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)pNMHDR;
if(lpnmlv->iItem >= 0)
{
CRect rc;
CWnd* wnd = GetParent();
m_CurSelItem = lpnmlv->iItem;
m_CurSelSubItem = lpnmlv->iSubItem;
CString str = GetItemText(m_CurSelItem, m_CurSelSubItem);
m_Edit.SetWindowText(str);
m_Edit.SetSel(0, -1);
GetSubItemRect(lpnmlv->iItem, lpnmlv->iSubItem, LVIR_LABEL, rc);
rc.bottom = rc.bottom - rc.top;
rc.right = rc.right - rc.left;
ShowEditBox(TRUE, &rc);
wnd->SendMessage(UM_LISTEDIT_DBCLICK, (WPARAM)lpnmlv, 0);
}
*pResult = 0;
}
1.其中GetSubItemRect(lpnmlv->iItem, lpnmlv->iSubItem, LVIR_LABEL, rc)函数是获得整个列的矩形区域,还是获得行和列相交部分的矩形区域?
2.rc.bottom = rc.bottom - rc.top;这段代码是得到编辑框的矩形区域,但我不知道它为什么要用相减得到矩形的底部?可以把顶部底部及坐标间的关系讲一下吗?
void CEditableListCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)pNMHDR;
if(lpnmlv->iItem >= 0)
{
CRect rc;
CWnd* wnd = GetParent();
m_CurSelItem = lpnmlv->iItem;
m_CurSelSubItem = lpnmlv->iSubItem;
CString str = GetItemText(m_CurSelItem, m_CurSelSubItem);
m_Edit.SetWindowText(str);
m_Edit.SetSel(0, -1);
GetSubItemRect(lpnmlv->iItem, lpnmlv->iSubItem, LVIR_LABEL, rc);
rc.bottom = rc.bottom - rc.top;
rc.right = rc.right - rc.left;
ShowEditBox(TRUE, &rc);
wnd->SendMessage(UM_LISTEDIT_DBCLICK, (WPARAM)lpnmlv, 0);
}
*pResult = 0;
}
1.其中GetSubItemRect(lpnmlv->iItem, lpnmlv->iSubItem, LVIR_LABEL, rc)函数是获得整个列的矩形区域,还是获得行和列相交部分的矩形区域?
2.rc.bottom = rc.bottom - rc.top;这段代码是得到编辑框的矩形区域,但我不知道它为什么要用相减得到矩形的底部?可以把顶部底部及坐标间的关系讲一下吗?