- 博客(24)
- 资源 (15)
- 收藏
- 关注
原创 CImage拷贝到另一个CImage,两个方法
下面是图片拷贝的两个方法,都是从网上找的,这里整理一下,方便大家参考。我测试的结果是,第一种方法速度要快一些。
2023-11-21 16:22:31 193
原创 CImage通过WinApi的SetWorldTransform来实现图片旋转
SetWorldTransform的功能是旋转画布,这样产生的效果就是图像旋转。因此,在旋转画布之前,要把要旋转的图像的位置和大小准备好,这样旋转之后,才能使图像正好出现在显示区域内。这需要计算两个关键参数,图像的左上角坐标和旋转中心坐标。因为是固定大小旋转,因此我们将中心设定在图像的显示中心。这样需要计算选中图像的高和宽。
2023-11-20 12:15:29 169
原创 QT中关于调用QMetaObject::newInstance()返回null的问题
在MFC中,可以使用RUNTIME_CLASS(class_name)来实现,但QT里面就不能这么用了,于是想到了QT的QObject派生类中有一个静态变量staticMetaObject,可以在实例化前获取到类的相关信息,并且调用newInstance()进行实例化。在实现过程中,遇到了newInstance()返回null的问题,就是实例化失败了,最后在查找了一些资料后,才发现需要在类的构造函数前,用Q_INVOKABLE来进行修饰,然后就完美解决问题。
2023-06-21 16:01:01 376
原创 MFC带灰色Tip注释文本的编辑框CTipEdit
MFC的编辑框CEdit是没有注释文本功能的,而现实中常常需要编辑框里有灰色的默认展示文本,当鼠标点击进入文本框时,注释信息自动消失,这时可以正常输入想要的文本。而当清空编辑框里面的文本时,又想要展示灰色的注释文本,我在网上找了一些文章,发现没有现成的功能函数,都是比较麻烦的。
2022-12-02 10:53:10 531 5
原创 C++ 获取所有没有被占用的盘符路径
之前在做映射共享文件夹到本地时,都是直接写死映射为Z盘的,但有的时候Z盘可能已经被占用了,所以需要挑选一个没有被占用的盘符路径,于是有了下面的这段代码。用_access()来检查盘符路径是否被占用,如果没有被占用,则收集起来,然后从中选一个来作为映射的盘符就好。
2022-08-23 17:50:33 319
原创 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 403
原创 关于windows版Qt中含有中文的变量出现乱码的解决办法
1、首先要把含有中文变量的资源文件用记事本打开,保存为“带有BOM的UTF-8”类型的文件;2、在资源文件中,将含有中文的变量,用QStringLiteral来定义就可以了;3、上面两步骤还没有解决乱码问题,则在int main(int argc, char *argv[])函数里,QApplication a(argc, argv);下面添加:QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));...
2021-05-22 10:01:14 531
原创 解决MacOS下QT无边框最小化失效,最小化后点击Dock图标无法恢复窗口的问题
试过国内网上的很多方法,但都是无效的,我的qt版本是5.14.2,所以翻墙找到了可以用的方法(国内的mac下qt开发的资料真的太少了,而且mac下的qt真的很坑)。在 最小化函数里用下面的代码:NSView* view = (NSView*)window()->winId();NSWindow* wnd = [view window];[wnd setStyleMask:[wnd styleMask] | NSWindowStyleMaskMiniaturizable];showMin
2020-06-24 14:26:37 2727 2
原创 QT设置文本为图形验证码(带干扰线)
GetRandomNumber是获取不重复的随机数列表,你们自己 实现吧;下面直接上代码://设置图形验证码void SetPicCode(QString sPicCode){ if(sPicCode.isEmpty()) { qDebug()<<QStringLiteral("SetPicCode:接收到图形验证码为空!"); return; } QSize size(110,40); //指定图片大小;
2020-06-20 14:19:43 737
原创 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 1747
原创 QT用QWidget做的气泡聊天功能,可发图片、文件、文本等气泡信息,功能简单,适合初学者
参考网上其他大能的demo,自己写了个比较简单的气泡聊天demo,可以发图片、文件、文字信息,在气泡信息上有右键菜单复制文本功能,图片可以双击打开,文件可以右键菜单打开文件和打开目录;气泡信息之前有显示日期功能,日期显示功能在不活动3钟后会再次插入显示;效如下:暂不支持GIF动画展示,所以demo还没上传...
2020-04-17 18:01:11 4302 6
原创 【原创】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 1973 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 1799
原创 SOUI,鼠标离开消息(MSG_WM_MOUSELEAVE)的使用
我也是SOUI的新手,在使用MSG_WM_MOUSELEAVE消息的时候,发现有时候会不响应这个消息,查阅了资料后,发现这个消息比较特殊,需要处理_TrackMouseEvent函数这里有两个消息处理MSG_WM_MOUSELEAVE(OnMouseLeave)MSG_WM_MOUSEMOVE(OnMouseMove)如果希望MSG_WM_MOUSELEAVE消息正常使用,需要在O...
2019-12-04 17:38:38 448
原创 c#数据类型转换整理
1、进制转换int ix = Convert.ToInt32(sValues, 16);//sValues为字符字符串,转为16进制的int类型string sX = nNum.ToString("X4");//X4表示16进制的4个字符2、string与byte[]之间的转转换//string类型转成byte[]:byte[] byteArray = System.Text....
2018-12-13 10:04:56 325
原创 winform的richtextbox展示内容时,展示区显示内容的最后部分
显示多行数据,将焦点放在数据最后一行//先将内容放到richTextBox1中,然后处理焦点问题richTextBox1.Focus();//先获取焦点richTextBox1.Select(richTextBox1.TextLength, 0);//选中数据末尾0个字符richTextBox1.ScrollToCaret();//将滚动条移动到当前位置 ...
2018-11-16 11:34:52 1144
原创 winform中设置无边框模式(FormBorderStyle为None)后点击任务栏图标,实现隐藏恢复窗口功能
在winform编程中,有时候我们可能对窗体样式需要定义,不适用系统自带的样式,这样我们可以设置FormBorderStyle属性为None。但是设置了FormBorderStyle为None后,我们点击任务栏应用程序图标并不能实现程序的最小化(或还原窗口)的操作(使用系统自带样式是可以实现的)。下面我将展示如何在FormBorderStyle为None的情况下,实现应用程序任务栏图标点...
2018-11-15 14:40:25 3468
转载 【转】C++内存管理(超长,例子很详细,排版很好)
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权...
2018-08-24 16:36:04 202
原创 C#,自己写的32位MD5加密函数
大体思路都是,MD5加密后得到byte类型的数组,然后将每个数组成员转换成16进制的string字符串,这里就容易产生BUG,因为转换成16进制时,遇到10以内的数字时,转后都是一个单字符的,但我们每次转换都要得到两个字符的字符串,网上大多数都没有考虑到这个,导致加密结果出现问题。 下面是我自己写的32位MD5加密函数,如果大家发现有BUG,请一定要给我留言,我好改正,谢谢//32位...
2018-08-08 16:10:26 1945 1
原创 wpf打开新窗口小结
下面是弹出page页NavigationWindow window = new NavigationWindow();window.Source = new Uri("MainWindow.xaml", UriKind.Relative);//mainwindow.ShowDialog();//模式,弹出!window.Show();//无模式,弹出!下面是弹出窗口项Window1 isw = n...
2018-07-03 10:41:54 12333 1
原创 winform的listview,获取单击的某行内容
1、首先要在listview控件属性中,添加click事件2、要判断是否获取了几行int selectCount = listview1.SelectedItems.Count; //选中的行数目,listview1是控件名。if (selectCount == 0) return;//没选中,不做响应3、获取选中行的内容string sPID = listview1.SelectedItems...
2018-07-02 15:24:52 6278
原创 C#中的委托(Delegate)小结
Delegate中文翻译为“委托”。Msdn中对Delegate的解释如下: C#中的委托类似于C或C++中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。上面转载了委托的概念,下面直接介绍我自己的总结,比较简单直观:目的:主...
2018-07-02 15:16:09 322
QT5开发的气泡聊天Demo,简单易懂
2020-04-18
用QT QListView写的仿微信好友列表
2020-03-19
Base64And3Des(C++3Des加密解密结合Base64加密解密).rar
2019-09-16
Socket_Client&Service;.rar,HPSocket在C++中的demo(包含客户端与服务端)
2019-06-14
C#实时监测usb设备的插拔情况,winform的Demo
2018-08-01
用IrisSkin4.dll与73个皮肤文件做的更换皮肤的Demo
2018-07-27
winform写的聊天小程序
2018-07-10
cef_binary_3.2623.1401.gb90a3be_windows32第二部分
2018-01-15
cef_binary_3.2623.1401.gb90a3be_windows32第一部分
2018-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人