当前位置: 首页 > news >正文

php+mysql网站开发技术与典型案例导航【源代码】做网站的图片用什么格式

php+mysql网站开发技术与典型案例导航【源代码】,做网站的图片用什么格式,wordpress 课程管理系统,海南网络电视台初级代码游戏的专栏介绍与文章目录-CSDN博客 这是一个通用CListCtrl排序的源代码。 对列表框CListCtrl进行排序#xff0c;使用列表框的自定义排序功能SortItems支持任意多个排序列和多种排序规则单击列头排序可在控件通知HDN_ITEMCLICK事件中调用#xff0c;示例代码就在头…初级代码游戏的专栏介绍与文章目录-CSDN博客 这是一个通用CListCtrl排序的源代码。 对列表框CListCtrl进行排序使用列表框的自定义排序功能SortItems支持任意多个排序列和多种排序规则单击列头排序可在控件通知HDN_ITEMCLICK事件中调用示例代码就在头文件里 目录 一、关键技术 二、完整源码 三、代码详解 3.1 排序类型 3.2 排序的列 3.3 排序入口 3.4 回调函数 3.5 使用 一、关键技术 CListCtrl::SortItems(回调函数回调函数参数) BOOL SortItems(PFNLVCOMPARE pfnCompare,DWORD_PTR dwData); 该函数通过回调函数比较两个列参数为列索引1列索引2回调函数参数。 比较函数为 int CALLBACK CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort); 返回值规则为负值表示第一个排前面正值表示第二个排前面相当于用第一个减第二个。 执行SortItems的时候会不断调用CompareFunc来确定排序关系参数为要比较的两个行的索引以及SortItems的dwDatadwData我们可以设置为一个指针从而包含需要的任何数据。  大致的执行流程是这样的 SortItems(比较函数参数) ------比较函数01参数 ------比较函数12参数 ------不断调用比较函数 完成 本代码用回调函数参数传递排序规则还将itemdata藏在一个临时列里面动机是什么我忘了如果没使用itemdata可以删掉相关代码如果发现有什么用可以告诉我。感觉当初我应该不是傻了应该是有理由的。 这个代码最早写于2000年现在这个版本是可以用在VS2017的。 二、完整源码 头文件 //SortList.h#pragma once//通用CListCtrl排序 //这个文件最早写于2000年 //对列表框CListCtrl进行排序使用列表框的自定义排序功能SortItems //支持任意多个排序列和多种排序规则 //单击列头排序可在控件通知HDN_ITEMCLICK事件中调用 //示例 /* void CTestDlg::OnHdnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult) {LPNMHEADER phdr reinterpret_castLPNMHEADER(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult 0;static mapint, bool map_isInc;//记录上次的排序状态map_isInc[phdr-iItem] !map_isInc[phdr-iItem];//同一列每次取反CListCompareFunc_Col sortparam;CompareFunc_Col col;col.idCol phdr-iItem;col.isInc map_isInc[phdr-iItem];col.sorttype enum_SortType::sorttype_str;sortparam.AddTail(col);SortList(m_List1, sortparam); } *///排序类型数值还是字符串 enum enum_SortType {sorttype_str,sorttype_istr,sorttype_trimstr,sorttype_itrimstr,sorttype_rtrimstr,sorttype_irtrimstr,sorttype_long,sorttype_double, };//排序的一个列 class CompareFunc_Col { public:int idCol 0;int sorttype sorttype_str;BOOL isInc true; };//排序调用此功能即可参数为一个或多个排序的列 void SortList(CListCtrl* pl, CListCompareFunc_Col * pSortCols);//取得列索引-1表示没找到(辅助函数排序功能并不需要这个函数) int GetColIndex(CListCtrl * pl, _TCHAR* Col); 实现文件 //SortList.cpp#include pch.h //预编译头文件是否需要取决于项目设置 #include SortList.hint GetColIndex(CListCtrl* pl, _TCHAR* Col) {LVCOLUMN lvcol;_TCHAR str[256];int ii;lvcol.mask LVCF_TEXT;lvcol.pszText str;lvcol.cchTextMax 256;ii 0;while (pl-GetColumn(ii, lvcol)){if (NULL ! Col 0 _tcscmp(Col, str))return ii;ii;}return -1; } int CompareStr(const _TCHAR* str1, const _TCHAR* str2, int type) {CString cstr, cstr2;int ret;double d;cstr str1;cstr2 str2;switch (type){case sorttype_str:ret _tcscmp(cstr, cstr2);break;case sorttype_istr:ret _tcsicmp(cstr, cstr2);break;case sorttype_trimstr:ret _tcscmp(cstr.Trim(), cstr2.Trim());break;case sorttype_itrimstr:ret _tcsicmp(cstr.Trim(), cstr2.Trim());break;case sorttype_rtrimstr:ret _tcscmp(cstr.TrimRight(), cstr2.TrimRight());break;case sorttype_irtrimstr:ret _tcsicmp(cstr.TrimRight(), cstr2.TrimRight());break;case sorttype_long:ret _ttol(cstr) - _ttol(cstr2);break;case sorttype_double:d _ttof(cstr) - _ttof(cstr2);if (d 0)ret 1;else if (0 d)ret 0;else ret -1;break;default:ret 0;break;}return ret; }//用于排序的回调函数的参数 struct CompareFunc_lParamSort {CListCtrl* pl;CListCompareFunc_Col* pSortCols; };//用于排序的回调函数lParamSort为CompareFunc_lParamSort int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) {CompareFunc_lParamSort* pparam;CompareFunc_Col* pcol;CString cstr, cstr2;POSITION pos;int ret;int ci;pparam (CompareFunc_lParamSort*)lParamSort;ci 0;pos pparam-pSortCols-GetHeadPosition();while (NULL ! pos){pcol pparam-pSortCols-GetNext(pos);cstr pparam-pl-GetItemText((int)lParam1, pcol-idCol);cstr2 pparam-pl-GetItemText((int)lParam2, pcol-idCol);ret CompareStr(cstr, cstr2, pcol-sorttype);if (0 ! ret){if (pcol-isInc){return ret;}else{return -ret;}}}return 0; }void SortList(CListCtrl* pl, CListCompareFunc_Col* pSortCols) {_TCHAR str[256];int ii, ci;//保存原来的ItemData到新列ci pl-InsertColumn(pl-GetHeaderCtrl()-GetItemCount(), TEXT(_temp));ii pl-GetItemCount();while (ii--){_i64tot_s(pl-GetItemData(ii), str, 256, 10);pl-SetItemText(ii, ci, str);}//设置IetmDataii pl-GetItemCount();while (ii--)pl-SetItemData(ii, ii);//排序CompareFunc_lParamSort CompareParam;CompareParam.pl pl;CompareParam.pSortCols pSortCols;pl-SortItems(CompareFunc, (DWORD_PTR)CompareParam);//恢复ItemDataii pl-GetItemCount();while (ii--){pl-SetItemData(ii, _ttoi64(pl-GetItemText(ii, ci)));}//删除临时列pl-DeleteColumn(ci); } 三、代码详解 3.1 排序类型 //排序类型数值还是字符串 enum enum_SortType {sorttype_str,sorttype_istr,sorttype_trimstr,sorttype_itrimstr,sorttype_rtrimstr,sorttype_irtrimstr,sorttype_long,sorttype_double, }; 这是我自己定义的排序类型包括整数、双精度和各种字符串方式i表示忽略大小写trim表示忽略前后空白字符rtrim表示只忽略右边的空白字符。你也可以增加自己的方式甚至通过参数直接传递比较函数。 3.2 排序的列 //排序的一个列 class CompareFunc_Col { public:int idCol 0;int sorttype sorttype_str;BOOL isInc true; }; idCol 列的索引 sorttype 前面介绍的排序类型 isInc 是否是增量排序 3.3 排序入口 //排序调用此功能即可参数为一个或多个排序的列 void SortList(CListCtrl* pl, CListCompareFunc_Col * pSortCols); 参数是要排序的CListCtrl和要排序的列因为支持多个所以参数是CList当初我还不懂STL放现在肯定用vector了。 排序入口做了两件事 保存ItemData到临时列排序完成后再恢复有点怀疑是因为排序的时候ItemData混乱了设置参数调用CListCtrl的SortItems排序 3.4 回调函数 回调函数的第三个参数用来传递外部数据 //用于排序的回调函数的参数 struct CompareFunc_lParamSort {CListCtrl* pl;CListCompareFunc_Col* pSortCols; }; 看起来按照CListCtrl的设计告诉你行的索引你就知道全部了由于回调函数的参数只包含两个行的索引所以我们必须把一切都塞在第三个参数里面所以必须使用一个结构把CListCtrl指针和排序规则放进去。 回调函数里面则根据规则获取数据比较。 3.5 使用 //单击列头排序可在控件通知HDN_ITEMCLICK事件中调用 //示例 /* void CTestDlg::OnHdnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult) {LPNMHEADER phdr reinterpret_castLPNMHEADER(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult 0;static mapint, bool map_isInc;//记录上次的排序状态map_isInc[phdr-iItem] !map_isInc[phdr-iItem];//同一列每次取反CListCompareFunc_Col sortparam;CompareFunc_Col col;col.idCol phdr-iItem;col.isInc map_isInc[phdr-iItem];col.sorttype enum_SortType::sorttype_str;sortparam.AddTail(col);SortList(m_List1, sortparam); } */ 上面的代码在列表框控件的HDN_ITEMCLICK事件通知里处理只使用单击的列排序连续单击多个列头可实现复合排序的效果重复单击同一个列头则改变递增、递减。 这个代码我用了很多年。 这里是结束
http://www.zqtcl.cn/news/780518/

相关文章:

  • 资阳房地产网站建设学校网站建设板块分析
  • 山东华邦建设网站首页wordpress h5自适应
  • 合肥市建设工程劳务分包合同备案表在哪个网站下载国际国内热点新闻事件
  • 临猗做网站怎么做挣钱的网站
  • 做软装找图片的网站wordpress 表单留言
  • 360网站挂马检测wordpress路径爆出
  • 有什么网站学做标书的专门做短视频的公司
  • 网站怎么做图片动态图片短视频推广
  • 海口的网站建设网页设计欣赏可爱风格
  • 高端网站设计哪个好五莲网站建设维护推广
  • 外贸网站 测速国内创意网页设计
  • 网站商城前台模板免费下载自己做网站统计
  • 十大免费货源网站免费版本厦门建网站多少钱
  • 网站建设投标书范本深圳网页设计培训多少钱
  • 动态ip可以做网站北京万户网络
  • 网址大全免费网站中国建设银行驻莫斯科网站
  • 网站建设 教材 推荐网站导入
  • 网站备案扫描智能软件开发就业前景
  • 快速网站建设费用口碑营销图片
  • wordpress地址和站点地址错天津seo诊断
  • 张云网站建设做谷歌推广比较好的公司
  • 电子商务网站建设与管理的论文题目智能自助建站系统源码
  • 个人网站建设价格网站做视频转流量
  • 点网站出图片怎么做深圳市中心在哪
  • 企业网站建设58同城网站优化排名软件哪些最好
  • 最专业企业营销型网站建设企业宣传海报设计制作
  • 石家庄建站公司软件开发岗位介绍
  • 网站开发知识视频教程公司网站总感觉少点什么找什么人做
  • 做网站ps建立多大的画布网站排名监控工具
  • 烟台网站开发网站建设横幅标语