
【MFC】
应用MFC过程中记录与分享
越甲八千
置身其中,全力以赴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MFC listctrl修改背景颜色
在 MFC 中修改 ListCtrl 控件的行背景颜色可以通过自绘(Owner-Draw)机制实现。主要步骤包括启用自绘属性、处理 NM_CUSTOMDRAW 消息,并在消息处理函数中根据行和列设置背景颜色。此外,可以通过创建自定义 CListCtrl 类来封装自绘逻辑,使代码更优雅。自定义类中还可以实现动态更新行颜色的功能,通过映射表存储每行的颜色并在自绘时应用。需要注意的是,自绘机制可能增加渲染开销,建议在数据量较大时使用虚拟列表优化性能。选中状态的颜色可能会覆盖自定义颜色,需通过判断 pLVCD-&g原创 2025-05-12 19:00:31 · 500 阅读 · 0 评论 -
通俗的理解MFC消息机制
MFC(Microsoft Foundation Classes)中的消息机制是一种处理系统或用户触发事件的方式,类似于快递系统。消息机制的核心包括三个部分:消息循环、窗口过程和消息映射。消息循环不断检查并分发新消息,窗口过程负责接收消息,而消息映射则将消息与对应的处理函数绑定。这种机制实现了事件触发与处理的解耦,提高了程序的灵活性和效率。例如,当用户点击按钮时,MFC会通过消息循环、窗口过程和消息映射找到并执行相应的处理函数,从而完成关闭窗口等操作。MFC的消息机制使程序能够高效、有序地响应各种事件。原创 2025-05-11 00:15:30 · 913 阅读 · 0 评论 -
MFC 显示,写入日志
【代码】MFC 显示,写入日志。原创 2025-05-08 22:26:17 · 114 阅读 · 0 评论 -
C++ set替换vector进行优化
【代码】C++ set替换vector进行优化。原创 2025-05-08 20:35:23 · 237 阅读 · 0 评论 -
写日志文件
【代码】写日志文件。原创 2025-05-05 13:48:20 · 125 阅读 · 0 评论 -
进程与线程
进程是资源包,线程是执行线进程像独立别墅,线程像合租室友开进程像创业,起线程像招员工。原创 2025-04-02 08:40:01 · 784 阅读 · 0 评论 -
数据库主键,外键,超建,索引
建立表之间的关联,确保引用完整性。原创 2025-03-26 17:32:20 · 760 阅读 · 0 评论 -
数据库范式2
其实范式总共有六个(1NF到5NF+BCNF),但实际开发中常用到第三范式(3NF),更高阶的范式通常出现在理论场景。:数据库设计一般到3NF就够用了,但有时为了查询更快,允许少量重复数据(比如电商订单页直接显示商品名称,而不是只存ID)。:只有同时关联三者的数据才有意义,且拆分后能通过**连接(JOIN)**还原原表。依赖的是出版社名称,而不是直接依赖书名(书名→出版社→电话)。:如果A→B→C(A决定B,B决定C),就需要拆表。:如果A→→B且A→→C,且B和C无关,就必须拆表。(主键:出版社名称)原创 2025-03-26 16:49:50 · 677 阅读 · 0 评论 -
SQL 视图
视图就像是一个虚拟的表,它是从一个或多个实际表中提取数据后形成的一种“窗口”。通过这个“窗口”,你可以按照特定的需求查看和使用数据,但视图本身并不实际存储数据,数据仍然存储在原来的表中。比如,你有一个包含员工信息的表,里面有员工的姓名、年龄、工资、部门等各种字段。但有时候,你只需要查看某个部门员工的姓名和工资信息,不想看到其他无关的内容。这时,你就可以创建一个视图,让它只显示你关心的这个部门员工的姓名和工资这两列数据。原创 2025-03-26 16:21:56 · 558 阅读 · 0 评论 -
SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景
【代码】SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景。原创 2025-03-26 16:04:37 · 1086 阅读 · 0 评论 -
sql语句给表添加一个递增列
SSMS–》视图-》数据库(表)-》新建查询执行完以上操作,会在表的最后一列添加一个自增字段接下来如何把最后一个字段放到第一个字段呢?假如sqlserver 表test 有以下列,列名字段如下 a1 a2 a3 a4 a5,现在我想把a5放到a1前面,该如何操作?sqlserver 表在 SQL Server 里,表的列顺序通常不会影响数据的存储和查询结果,但要是你有将a5列移到a1。原创 2025-03-24 14:40:02 · 582 阅读 · 0 评论 -
管道通信基本原理
但它也有一些局限性,如管道是单向的,数据只能从写端流向读端,如果需要双向通信,需要创建两个管道;管道是一种用于进程间通信(IPC)的机制,它的通信原理基于内核缓冲区和文件描述符,通过将数据从一个进程的输出连接到另一个进程的输入来实现数据传输。命名管道(FIFO):通过文件系统中的命名管道文件(如 mkfifo 命令创建),允许无关进程通信。创建管道:父进程通过系统调用(如 pipe())创建管道,内核分配缓冲区并返回两个文件描述符。匿名管道:只能用于有亲缘关系的进程(如父子进程、兄弟进程)。原创 2025-03-24 10:24:58 · 807 阅读 · 0 评论 -
悲观锁乐观锁
悲观锁和乐观锁各有优缺点,在实际应用中,需要根据具体的业务场景和并发情况来选择合适的锁机制。如果对数据一致性要求极高且写操作频繁,建议使用悲观锁;如果读操作频繁且并发冲突较少,乐观锁可能是更好的选择。原创 2025-03-22 09:54:34 · 708 阅读 · 0 评论 -
数据库的各个范式
数据库范式是为了设计出高效、规范的数据库而总结出的一些规则和标准,主要用于消除数据冗余、提高数据的一致性和完整性。原创 2025-03-21 09:44:57 · 448 阅读 · 0 评论 -
C++实现rabbitmq生产者消费者
RabbitMQ是一个开源的消息队列系统,它实现了高级消息队列协议(AMQP),原创 2025-03-19 08:16:32 · 368 阅读 · 0 评论 -
VS SDL
SDL 检查通过静态代码分析技术,在编译阶段对代码进行扫描,依据一系列安全规则和最佳实践来检查代码。这些规则是基于微软多年的安全开发经验和对常见安全漏洞的研究制定的,能够检测出代码中可能存在的安全隐患和不符合安全规范的代码模式。未初始化的变量可能包含随机值,使用这些变量会导致程序行为不可预测,甚至引发安全问题。SDL 检查会检测代码中是否存在对空指针进行解引用的操作,并给出相应的警告。SDL 会建议使用更安全的替代函数,如。除了上述提到的缓冲区操作函数,SDL 还会检查其他一些不安全的函数调用,如。原创 2025-03-11 23:15:44 · 867 阅读 · 0 评论 -
C++根据两点计算角度差的两种算法
/ 定义一个表示二维点的结构体,使用双精度浮点数。// 将角度偏差限制在 [-π, π] 范围内。// 计算线段 A 和线段 B 对应的向量。// 计算两条线段之间的角度偏差。原创 2025-02-21 14:13:39 · 459 阅读 · 0 评论 -
C:\Windows\System32存放的64位
在 64 位 Windows 系统中,目录存放的是 64 位的系统文件和动态链接库,这初看起来有些不符合直觉,但背后有其历史和兼容性方面的原因。原创 2025-02-17 11:28:22 · 364 阅读 · 0 评论 -
windows C++ TCP客户端
1. 接收数据线程相关的成员变量:用于存储接收数据线程的句柄,通过函数创建线程时获取,用于后续对线程的操作,比如等待线程结束、关闭线程句柄等。:布尔类型变量,用于标记接收数据线程是否正在运行,在启动线程时设置为,当需要停止线程(比如断开连接或者程序结束时)设置为,线程函数内部会根据这个变量来判断是否继续循环接收数据。2. 函数在成功连接到服务器后,不仅将标记设置为,还会创建并启动接收数据线程。通过函数创建线程,传入函数作为线程执行的入口点,并将当前对象指针作为参数传递进去,以便在线程函数中能够访原创 2024-12-24 15:57:49 · 674 阅读 · 0 评论 -
windows C++ 判断文件大小,清空文件,写日志
windows C++ 判断文件大小,清空文件,写日志等几个常见的接口,记录一下备忘。原创 2024-12-21 17:05:23 · 254 阅读 · 0 评论 -
优化后的TCP client 增加心跳包
优化后的TCP client 增加心跳包。原创 2024-12-12 10:11:02 · 410 阅读 · 0 评论 -
TcpServer 服务器优化之后,加了多线程,对心跳包进行优化
TcpServer 服务器优化之后,加了多线程,对心跳包进行优化。原创 2024-12-11 17:08:31 · 727 阅读 · 0 评论 -
windows TCP client demo
【代码】windows TCP client demo。原创 2024-12-11 10:02:53 · 295 阅读 · 0 评论 -
windows TCP Server demo
【代码】windows TCP Server demo。原创 2024-12-11 10:01:23 · 560 阅读 · 0 评论 -
C++ windows HTTP 服务器demo
【代码】C++ windows HTTP 服务器demo。原创 2024-12-10 20:07:57 · 671 阅读 · 0 评论 -
非MFC工程实现消息映射
BEGIN_MESSAGE_MAP是 MFC(Microsoft Foundation Classes)中的宏,它是基于 MFC 框架的一种消息映射机制。MFC 中的消息映射机制依赖于 MFC 的框架结构,包括CWnd类、CCmdTarget类等一系列类的层次结构以及它们的内部实现。纯 C++ 工程没有包含 MFC 的这些类和框架支持,所以编译器无法识别BEGIN_MESSAGE_MAP这些 MFC 特有的宏。虽然不能直接使用 MFC 的消息映射,但可以在纯 C++ 工程中模拟类似的机制。原创 2024-12-07 09:37:17 · 405 阅读 · 0 评论 -
MFC tcpclient
MFC tcpclient。原创 2024-10-29 21:39:55 · 550 阅读 · 0 评论 -
MFC的SendMessage与PostMessage的区别
直接调用: SendMessage 会将消息直接传递给目标窗口的消息处理函数,因此消息处理函数在当前线程中执行。消息会在目标窗口的消息队列中排队,等待目标窗口的消息循环来处理。PostMessage是非阻塞的,直接把消息放到消息队列之中,发送函数继续执行,若是发送的参数是临时变量,将会在消息处理函数产生乱码,所以才有静态,或者全局变量避免乱码。同步操作: SendMessage 是一个同步函数,它会将消息发送到指定的窗口,并等待该窗口的消息处理过程完成,然后返回。它不会等待消息处理完成。原创 2024-10-28 19:32:34 · 1045 阅读 · 0 评论 -
C++ ADO操作数据库动态库
【代码】C++ ADO操作数据库动态库。原创 2024-10-19 19:33:24 · 272 阅读 · 0 评论 -
C++计时
C++一个很好的计时方法原创 2024-10-11 14:53:02 · 311 阅读 · 0 评论 -
STL各种map比较
由于map使用红黑树实现,所以是有序存储的,因此map的key需要定义operator原创 2024-09-26 10:13:16 · 189 阅读 · 0 评论 -
MFC设置特定控件字体大小和背景颜色
MFC设置特定控件字体大小和背景颜色原创 2024-09-25 21:13:24 · 810 阅读 · 0 评论 -
afxbegthead创建线程失败
afxbegthead创建线程失败原创 2024-09-13 11:46:19 · 863 阅读 · 0 评论 -
libcurl遇到的问题总结
libcurl遇到的问题总结原创 2024-08-23 21:05:35 · 496 阅读 · 0 评论 -
C++和MES通信时传输中文,存在乱码,在callback函数论进行转换
C++和MES通信时传输中文,存在乱码,在callback函数论进行转换原创 2024-08-22 21:39:14 · 183 阅读 · 0 评论 -
C++仿函数/函数对象
C++仿函数/函数对象原创 2024-08-19 16:13:10 · 144 阅读 · 0 评论 -
指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?
指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?原创 2024-08-17 21:55:18 · 403 阅读 · 0 评论 -
C++函数模板温习总结
C++函数模板温习总结原创 2024-08-15 21:25:23 · 770 阅读 · 0 评论 -
CString转string
CString转string原创 2024-08-14 09:10:28 · 249 阅读 · 0 评论 -
C++引用产生临时量的情况
C++引用产生临时量的情况原创 2024-08-13 22:03:46 · 259 阅读 · 0 评论