如何记住表格列宽,供下次调用,来提升用户操作体验?

如何让系统记住用户每次拖动表格后的列宽,下次表格初始化就可以直接用该列宽,来显示表格的每一个列。每个用户的使用习惯不一样,和使用的功能不一样,即使是同一套系统,只要用户不同,就有可能需要不同的列宽。比如,某些用户需要特别关注备注信息,就需要直接把备注列拉的宽一些。某些用户关注的品名,就需要把品名拉到合适的位置。

如何记住表格列宽,供下次调用,来提升用户操作体验?_第1张图片

 我们需要在拖动表格列宽的操作中,记住拖动后的当前列的宽,核心代码是这样的:

void MyCListCtrl::OnHdnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMHEADER phdr = reinterpret_cast(pNMHDR);

	//获取表头控件
	CHeaderCtrl* pHead = GetHeaderCtrl();
	
	//获取表头列信息
	HDITEM hdItem;
	ZeroMemory(&hdItem,sizeof(hdItem));
	hdItem.mask=HDI_FORMAT | HDI_WIDTH;    
	pHead->GetItem(phdr->iItem,&hdItem);

	//获取列宽
	CString dh_table_col,col_width;
	dh_table_col.Format(_T("T%d_%d_%d_%s"),parent_id,list_id,phdr->iItem+1,((CMainApp *)::AfxGetApp())->m_uid);
	col_width.Format(_T("%d"),hdItem.cxy);
	//保存列宽
	HxFile::WriteIni(_T("cfg.ini"),_T("TABLECOLS"),dh_table_col,col_width);
	

	//刷新表格
	CRect rc_all;
	this->GetClientRect(&rc_all);
	this->InvalidateRect(&rc_all);

	*pResult = 0;
}

该功能,提升了用户的操作体验,帮用户节省了操作时间。当然当前大多数ERP软件,都有这个功能。

 Demo下载:绿色迷你ERP系统.zip - 蓝奏云 (lanzouy.com)

你可能感兴趣的:(windows,erp)