Win32 SDK Gui编程系列之--ListView自绘OwnerDraw(续)

通过所有者绘制的列表视图(2)         

        所有者绘制列表视图的基础已在前一页中说明。本页将展示如何在所有者绘制列表视图中显示数据库表数据。
1、访问日志 正如在另一个页面中所述,本网站的访问日志目前是通过SQLite3数据库管理的。
        以下是上述程序执行的结果。为了有效管理大量记录,每个访问记录都被数字化。这样的数据并不以原始形式存在于关系数据库的表中。
b5f792f445084d7e8c51186cd38ec98f.png
        通过执行下面红色显示的SQL语句(选择查询)来获取表log和表path的数据:

90:     sqlite3_open(LOGDB, &db);   // 打开数据库
91:     sql = "select count(*) as cnt,name from log,path where log.pid=path.id group by pid order by cnt desc";
92:     sqlite3_exec(db, sql, callback, 0, &zErrMsg);
93:     sqlite3_close(db);

顺便说一下,通过SQL语句 "select count(*) from log;" 可以得到表log的记录数。
        截至2013年5月2日,这个值是532,394。在我平时使用的移动PC(1.83GHz, 2.0GB)上,执行上述红色查询的时间是2、3秒。当记录数达到几百万时,执行时间会成为问题。 我正在考虑更换电脑,这样几百万条记录应该没问题,但数千万条记录可能就不行了。 在这种情况下,解决方案总是不从所有原始日志中获取,而是例如按月汇总。 2. 所有者绘制的列表视图 要将列表视图设置为所有者绘制,需要在创建时的窗口样式中添加LVS_OWNERDRAWFIXED。 列的创建与标准列表视图相同。 由于不需要设置显示字符串,因此记录的创建比标准列表视图简单。但是,不能省略。

56: void onCreate(HWND hWnd) {
57:     int iCol, iRow;
58:     hList = CreateWindowEx(0, WC_LISTVIEW, NULL, 
59:                         WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_OWNERDRAWFIXED,
60:                         0, 0, 1, 1, hWnd, (HMENU)777, NULL, NULL);
61:     SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES);
62:     for (iCol = 0; iCol < NCOL; iCol++) {
63:         LVCOLUMN col = { LVCF_FMT|LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM, 0,
64:                          iCol==0 ? 50 : iCol==1 ? 90 : 400

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457406.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ELAdmin 前端启动

开发工具 官方指导的是使用WebStorm&#xff0c;但是本人后端开发一枚&#xff0c;最终还是继续使用了 idea&#xff0c;主打一个能用就行。 idea正式版激活方式&#xff1a; 访问这个查找可用链接&#xff1a;https://3.jetbra.in/进入任意一个能用的里面&#xff0c;顶部提…

Vue3大事件项目(ing)

文章目录 核心内容1.大事件项目介绍2.大事件项目创建3.Eslint配置代码风格4.配置代码检查工作流问题: pnpm lint是全量检查,耗时问题,历史问题 5.目录调整6.vue-router4 路由代码解析7.引入 Element Plus 组件库8.Pinia 构建仓库 和 持久化9.Pinia 仓库统一管理 核心内容 Vue3…

VMware虚拟机清理瘦身

用了一段时间VMware虚拟机之后&#xff0c;发现内存越来越小&#xff0c;也没装什么软件。。。 1.查询磁盘空间分布 虚拟机中磁盘空间查询 先看一下哪些地方占用的空间大&#xff0c;进行排查。 2.排查VMware复制文件产生的缓存路径 VMware复制文件有一个特点&#xff0c;以…

关于浏览器360导航无法更改

当前环境场景&#xff1a; 浏览器&#xff1a;Microsoft Edge 版本 121.0.2277.106 (正式版本) (64 位) 系统&#xff1a;Windows 11 家庭中文版 23H2 问题描述 首先出现这种情况会让我们非常的气愤但是又束手无策&#xff0c;看到这个页面简直就恨的牙根痒痒&#xff0c;但是…

泛型、Trait 和生命周期(中)

目录 1、定义 trait 2、为类型实现 trait 3、默认实现 4、trait 作为参数 5、Trait Bound 语法 6、通过 指定多个 trait bound 7、通过 where 简化 trait bound 8、返回实现了 trait 的类型 9、使用 trait bound 有条件地实现方法 trait 定义了某个特定类型拥有可能…

Powershell Install 一键部署Openssl+certificate证书创建

前言 Openssl 是一个方便的实用程序,用于创建自签名证书。您可以在所有操作系统(如 Windows、MAC 和 Linux 版本)上使用 OpenSSL。 Windows openssl 下载 前提条件 开启wmi,配置网卡,参考 自签名证书 创建我们自己的根 CA 证书和 CA 私钥(我们自己充当 CA)创建服务器…

[每周一更]-(第85期):NLP-实战操作-文本分类

NLP文本分类的应用场景 医疗领域 - 病历自动摘要&#xff1a; 应用&#xff1a; 利用NLP技术从医疗文档中自动生成病历摘要&#xff0c;以帮助医生更快速地了解患者的状况。 法律领域 - 法律文件分类&#xff1a; 应用&#xff1a; 使用文本分类技术自动分类法律文件&#xf…

虚拟飞控计算机:飞行控制系统验证与优化的利器

01.背景介绍 随着航空技术的飞速发展&#xff0c;飞行控制系统作为飞机的心脏&#xff0c;全面负责监测、调整和维持飞行器的姿态、航向、高度等参数&#xff0c;用以确保飞行的安全和稳定。为了满足这些要求&#xff0c;现代飞控系统通常采用先进的处理器和外设来确保其高效、…

微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)-2.0.1

客户端注册临时实例&#xff0c;GRPC处理 客户端服务发现 及订阅处理

SpringCloud-创建多模块项目

在微服务架构中&#xff0c;项目的组织结构对于代码的维护和团队的协作至关重要。Spring Cloud作为一个强大的微服务框架&#xff0c;提供了丰富的功能和组件&#xff0c;同时也支持多模块项目的创建&#xff0c;使得代码结构更加清晰、易于管理。本文将介绍如何使用 Spring Cl…

LeetCode:26.删除有序数组中的重复项

26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 目录 题目&#xff1a; 思路&#xff1a; 代码注释&#xff1a; 每日表情包&#xff1a; 题目&#xff1a; 思路&#xff1a; 没啥特殊的&#xff0c;老老实实双指针遍历数组&#xff0c;&#xff0…

JavaScript入门学习

JavaScript 一.什么是JavaScript与作用 JavaScript&#xff08;简称“JS”&#xff09; 是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言 嵌入HTML中&#xff0c;与Css一样。对浏览器事件作出响应操作HTML元素及节点。可以动态操作CSS样式。在数据被提交…