C++
文章平均质量分 59
C++知识
黑兔子JH
-
C++Qt实现拖拽按钮插入指定位置并重新排序
实现类似windows桌面拖拽图标可以移动位置,并且点击可以相应点击消息。原创 2022-03-16 08:57:27 · 1647 阅读 · 1 评论 -
读写配置文件
读取配置文件:1.定义文件路径:CString strFilePath=_T(".\\FILES\\config.ini");2.判断文件是否存在:if (!PathFileExists(strFilePath)){return;}3.读取数据:int nkeyValue= GetPrivateProfileInt(_T("AppName"),_T("KeyName"),TRUE,strFilePath);//(AppName, KeyName, 默认值, 文件名)Cstri..原创 2021-11-25 08:56:56 · 350 阅读 · 0 评论 -
C++获取第二个屏幕坐标信息
1. 定义全局变量:CRect rect[2] = {(0,0,0,0),(0,0,0,0)}; //分别存放两个屏幕的坐标2. 定义全局函数:BOOL CALLBACK Monitorenumproc( HMONITOR hMonitor,HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData){static BOOL first = FALSE; //重复检测标志int nScreenNu...原创 2021-11-22 10:15:42 · 978 阅读 · 0 评论 -
双缓存的使用
1、定义内存DC: CDC memDC;2、定义位图资源: CBitmap bitmap;3、创建内存DC: memDC.CreateCompatibleDC(&dc);4、创建位图资源: bitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());5、选择位图资源: CBitmap *pOldBitmap = memDC.SelectObject(&bitmap);6、双缓存输出到屏幕: dc.原创 2021-11-19 09:51:44 · 871 阅读 · 0 评论 -
C++ GDI+绘制界面
GDI:(GraphicsDeviceInterfase)图形设备接口,是一个应用程序与输出设备之间的中介。运行环境:Gdiplus.dll 包含在Windows系统中。【在system32中包含Gdiplus.dll文件】。1.包含头文件:#include <Gdiplus.h>2.链接库文件:属性->配置->连接器->输入->附加依赖项->Gdiplus.lib;3.定义成员变量:ULONG_PTR m_gdiplusToken;4...原创 2021-11-17 14:25:06 · 2815 阅读 · 0 评论 -
C++线程
一、传统方式1、头文件:#include <winsock.h>2、创建线程用参数:s_ThreadInfo m_pThreadInfo;typedef struct {BOOL m_bExit;//标记线程是否退出 LPVOID m_pThis;//主线程指针HANDLE threadHandle;//线程句柄DWORD threadID;//线程ID}s_ThreadInfo;//自定义线程消...原创 2021-11-11 11:54:39 · 2676 阅读 · 0 评论 -
libcurl的使用
参考https://curl.haxx.se/libcurl/c/curl_easy_setopt.html我个人认为:创建,初始化,设置url地址,设置是否开启详解,设置标题,设置重定向,设置超时时间,验证对方证书,验证证书名称,自定义HTTP标头,指定要发送的数据,请求HTTP POST,设置回调,给写回调传递指针,执行请求,释放。创建curlcurl_glob原创 2018-03-20 16:37:54 · 272 阅读 · 0 评论 -
套接字(socket通信)
1.头文件:#include <stdio.h>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")//加载 ws2_32.dll2.初始化dll:WSADATA wsaData;WORD sockVersion=MAKEWORD(2,2); //版本号2.2if(WSAStartup(sockVersion,&wsaData)){ AfxMessageBox(_T("...原创 2021-06-29 11:41:30 · 213 阅读 · 0 评论 -
临界区
1、定义全局临界区结构对象:CRITICAL_SECTION g_CriticalSectionFile;2、初始化临界区:InitializeCriticalSection(&g_CriticalSectionFile);3、进入临界区:EnterCriticalSection(&g_CriticalSectionFile);4、离开临界区:LeaveCriticalSection(&g_CriticalSectionFile);5、删除临界区:DeleteCr..原创 2020-10-16 15:47:48 · 221 阅读 · 0 评论 -
c++ 系统托盘
//设置系统托盘 1.定义成员变量: NOTIFYICONDATA NotifyIcon;//系统托盘类 2.创建系统托盘 NotifyIcon.cbSize = sizeof(NOTIFYICONDATA); NotifyIcon.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); Not...原创 2019-11-13 10:16:23 · 969 阅读 · 0 评论 -
c++读取注册表内容
CString strExePath=_T("");HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭LPCTSTR data_Set= _T("Software\\***\\***");//打开与路径data_Set相关的hKEY(精确到表所在文件夹路径)//访问注册表,hKEY则保存此函数所打开的键的句柄if (ERROR_SUCCESS == ::Reg...原创 2019-11-13 09:51:25 · 445 阅读 · 0 评论