91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-04
  • 語言: C/C++
  • 標(biāo)簽: ClistCtrl??MFC??可編輯??

資源簡介

擴(kuò)展了MFC列表框控件功能,使得列表框控件中的值可以編輯

資源截圖

代碼片段和文件信息

//?EditListCtrl.cpp?:?實(shí)現(xiàn)文件
#include?“stdafx.h“
#include?“AltairNetworkLockTools.h“
#include?“EditListCtrl.h“

//?CEditListCtrl
IMPLEMENT_DYNAMIC(CEditListCtrl?CListCtrl)
CEditListCtrl::CEditListCtrl()
{
m_edit?=?NULL;//編輯框的指針,初始為NULL,表示無編輯框
m_isedit?=?NULL;//標(biāo)志哪些列可編輯的標(biāo)志維數(shù)組,初始為NULL
m_item?=?-1;//當(dāng)前編輯的行號,初值為-1
m_subitem?=?-1;//當(dāng)前編輯的列號,初值為-1
}

CEditListCtrl::~CEditListCtrl()
{

}

BEGIN_MESSAGE_MAP(CEditListCtrl?CListCtrl)
ON_NOTIFY_REFLECT(NM_CLICK?&CEditListCtrl::OnNMClick)
ON_NOTIFY_REFLECT(NM_SETFOCUS?&CEditListCtrl::OnNMSetfocus)
ON_WM_HSCROLL()
ON_WM_VSCROLL()
ON_WM_DESTROY()
END_MESSAGE_MAP()

//?CEditListCtrl?消息處理程序
void?CEditListCtrl::OnNMClick(NMHDR?*pNMHDR?LRESULT?*pResult)
{
LPNMITEMACTIVATE?pNMItemActivate?=?reinterpret_cast(pNMHDR);
//?TODO:?在此添加控件通知處理程序代碼
if(!m_isedit)?return;
NM_LISTVIEW*?pNMListView?=?(NM_LISTVIEW*)pNMHDR;
if(!m_edit)
{
m_subitem=pNMListView->iSubItem;
if(pNMListView->iItem!=m_item)
{
m_item=pNMListView->iItem;//標(biāo)志被單擊的項(xiàng)目
return;
}
}
if(!m_isedit[m_subitem])//若當(dāng)前列不允許直接編輯則返回?
return;
RECT?m_itemrectm_r;
GetItemRect(m_item?&m_itemrect2);
//m_itemrect.right+=30;
GetItemRect(0?&m_r2);
//m_r.right+=30;
int?m_height=m_itemrect.bottom?-m_itemrect.top?;
int?x=m_r.left?y=m_r.topcx=0cy=m_height;//(xycxcy)為編輯框顯示的位置
if?(m_item==0)
{
cy+=20;
}
for(int?i=0;i {
y+=m_height;
????cy=y+m_height;
}
for(int?t=0;t {
x+=GetColumnWidth(t);
????cx=x+GetColumnWidth(t);
}
if(m_edit)//若編輯框已存在
{
CString?s1;
s1.Format?(“%d?%d?%d?%d“xycxcy);
m_edit->MoveWindow(xycx-xcy-y);//移動到當(dāng)前子項(xiàng)目的位置
Invalidate();//刷新屏幕。
return;
}
//若編輯框不存在則創(chuàng)建編輯框并在當(dāng)前子項(xiàng)目處顯示編輯框。
CRect?rect(xycxcy);
m_edit=new?CEdit();
m_edit->Create?(WS_CHILD|WS_VISIBLE|WS_BORDERrectthisID_LISTEDIT);
CString?str=GetItemText?(pNMListView->iItempNMListView->iSubItem);
m_edit->UpdateData(0);
m_edit->SetWindowText(str);?
DWORD?dwSel?=?m_edit->GetSel();???
m_edit->SetSel(HIWORD(dwSel)?-1);
//顯示編輯框
m_edit->ShowWindow(SW_SHOW);
m_edit->SetFocus();

*pResult?=?0;
}

void?CEditListCtrl::OnNMSetfocus(NMHDR?*pNMHDR?LRESULT?*pResult)
{
//?TODO:?在此添加控件通知處理程序代碼
if(m_edit)
{//將編輯框中的數(shù)據(jù)寫回對應(yīng)的子項(xiàng)目中
UpdateData(?);
CString?str;
m_edit->GetWindowText(str);
SetItemText(m_itemm_subitemstr);
delete?m_edit;
m_edit=NULL;
}
*pResult?=?0;
}

void?CEditListCtrl::OnHScroll(UINT?nSBCode?UINT?nPos?CScrollBar*?pScrollBar)
{
//?TODO:?在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
LRESULT*?pResult=new?LRESULT;
if(m_edit)
{
OnNMClick((NMHDR*)thispResult)?;
}
CListCtrl::OnHScroll(nSBCode?nPos?pScrollBar);
}

void?CEditListCtrl::OnVScroll(UINT?nSBCode?UINT?nPos?CScrollBar*?pScrollBar)
{
//?TODO:?在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
//垂直滾動時(shí)移動已顯示的編輯框
LRESULT*?pResult=new?LRESULT;
if(m_edit)
{
RECT?m_itemrectm_headrect;
GetItemRect(m_item?&m_itemrec

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-08-27?19:09??EditListCtrl\
?????文件????????4019??2016-08-27?18:56??EditListCtrl\EditListCtrl.cpp
?????文件?????????773??2016-08-27?17:04??EditListCtrl\EditListCtrl.h

評論

共有 條評論