C++
蓝之羽520
这个作者很懒,什么都没留下…
展开
-
CImage拷贝到另一个CImage,两个方法
下面是图片拷贝的两个方法,都是从网上找的,这里整理一下,方便大家参考。我测试的结果是,第一种方法速度要快一些。原创 2023-11-21 16:22:31 · 298 阅读 · 0 评论 -
MFC中,CImage通过StretchBlt实现镜像翻转功能
【代码】MFC中,CImage通过StretchBlt实现镜像翻转功能。原创 2023-11-17 16:29:16 · 200 阅读 · 0 评论 -
CImage通过WinApi的SetWorldTransform来实现图片旋转
SetWorldTransform的功能是旋转画布,这样产生的效果就是图像旋转。因此,在旋转画布之前,要把要旋转的图像的位置和大小准备好,这样旋转之后,才能使图像正好出现在显示区域内。这需要计算两个关键参数,图像的左上角坐标和旋转中心坐标。因为是固定大小旋转,因此我们将中心设定在图像的显示中心。这样需要计算选中图像的高和宽。原创 2023-11-20 12:15:29 · 249 阅读 · 0 评论 -
MFC带灰色Tip注释文本的编辑框CTipEdit
MFC的编辑框CEdit是没有注释文本功能的,而现实中常常需要编辑框里有灰色的默认展示文本,当鼠标点击进入文本框时,注释信息自动消失,这时可以正常输入想要的文本。而当清空编辑框里面的文本时,又想要展示灰色的注释文本,我在网上找了一些文章,发现没有现成的功能函数,都是比较麻烦的。原创 2022-12-02 10:53:10 · 635 阅读 · 5 评论 -
C++ 获取所有没有被占用的盘符路径
之前在做映射共享文件夹到本地时,都是直接写死映射为Z盘的,但有的时候Z盘可能已经被占用了,所以需要挑选一个没有被占用的盘符路径,于是有了下面的这段代码。用_access()来检查盘符路径是否被占用,如果没有被占用,则收集起来,然后从中选一个来作为映射的盘符就好。原创 2022-08-23 17:50:33 · 339 阅读 · 0 评论 -
C++结构体内存对齐原则的理解
对于结构体所占内存大小的计算,之前看了好几篇文章,但还是有些迷糊,最近大概弄明白了,其实主要是先计算成员内存和,然后再看是不是对齐值的倍数。这里要注意的有几点:1、计算成员内存时,起始位置要是自身对齐值的倍数,如下例子(32位编译器):成员A.a起始地址是0x0000,成员A.b是int类型自身对齐值是4,那么它起始地址应该是0x0004,所以a和b的大小是4+4=8,结构体内存为9。2、结构体的有效对齐值是其自身对齐值最大成员的自身对齐值,所以结构体A的内存应该是4的倍数,比9大的4的倍数是12,于原创 2022-07-12 11:59:08 · 410 阅读 · 0 评论 -
QCefView:C++与JS交互的方法
QT嵌入CEF,使用QCefView比较 简单些,很多功能 都已经集成好了,使用比较方便,关于如何搭建CEF环境与编译QCefView,这里就不说了,网上有很多文章,而且通过编译调试QCefView,也可以加强对QCefView的了解,这里主要整理下我对QCefView的C++与JS的通信方法。进入正题:1、C++调用JS的方法:(1)JS设置自己的方法名称与C++调用的别名映射关系:...原创 2020-04-22 16:43:51 · 1882 阅读 · 0 评论 -
QT用QWidget做的气泡聊天功能,可发图片、文件、文本等气泡信息,功能简单,适合初学者
参考网上其他大能的demo,自己写了个比较简单的气泡聊天demo,可以发图片、文件、文字信息,在气泡信息上有右键菜单复制文本功能,图片可以双击打开,文件可以右键菜单打开文件和打开目录;气泡信息之前有显示日期功能,日期显示功能在不活动3钟后会再次插入显示;效如下:暂不支持GIF动画展示,所以demo还没上传...原创 2020-04-17 18:01:11 · 4573 阅读 · 6 评论 -
自己用QT QListView写的demo
列表仿微信好友列表(头像+上下双行数据),还有单击获取信息的功能;效果图如下:原创 2020-03-19 11:48:11 · 2353 阅读 · 0 评论 -
【原创】boost共享内存,进程间通信实例
一、发送端创建共享区域,并写入内容://1 先删除之前创建的shared_memory_object::remove("MySharedMemory_Name");//2 创建共享内存段shared_memory_object shm(create_only, "MySharedMemory_Name", read_write);//3 设置共享内存大小shm.truncate...原创 2020-03-05 19:37:54 · 1991 阅读 · 1 评论 -
【原创】十六进制数值与字符串之间的转换(原封不动的转换)
方法1:利用mfc或其他开发工具的宽字符串格式转Format()//十六进制数字原封不动的转字符串DWORD dTest = 0x036C9B38;CString sTest;sTest.Format(L"%x", dTest);//sTest=L"36c9b38"//十六进制的字符串原封不动的转十六进制string strTest = CW2A(sTest);//宽字符串转窄字...原创 2020-03-05 11:18:48 · 1882 阅读 · 0 评论 -
【转】C++内存管理(超长,例子很详细,排版很好)
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权...转载 2018-08-24 16:36:04 · 218 阅读 · 0 评论