- 博客(9)
- 收藏
- 关注
原创 c++ 函数指针和指针函数
函数指针的声明方法为:返回值类型 ( *指针变量名) ([形参列表]);注1:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给指针f */.
2021-03-31 15:36:17 497
原创 HOOK(钩子,挂钩)
HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制。HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的消息发出后,HOOK程序就可以在消息到达目标窗口之前将其捕获,从而得到对消息的控制权,进而可以对该消息进行处理或修改,加入我们所需的功能。钩子按使用范围分,可分为线程钩子和系统钩子,其中,系统钩子具有相当大的功能,几乎可以实现对所有Windows消息的拦截、处理和监控。这项技术涉及到两个重要的API,一个是SetWindowsHookEx,安装钩子;另一个是U
2021-03-30 13:42:42 1099
原创 cdc绘图
设备上下文 :m_hDC或者GetSafeHdc函数CDC对象: CDC对象或指针 或FromHandle关联:Attach分离:Detach一、客户区大小和DC在绘图前,必须先得到客户区大小和设备上下文DC。客户区大小(2种办法)1)在消息响应函数OnSize中获得利用属性窗口的信息页,在视图类中添加WM_SIZE消息的响应函数OnSize。该函数在窗口第一次显示或窗口大小被改变时会被Windows系统调用。其输入参数中的cx和cy就是客户区大小的宽和高。v...
2021-03-09 15:23:54 790
原创 CPaintDC 、CWindowDC、 CClientDC、cMemDC、 CDC
CPaintDC 、CWindowDC、 CClientDC、 CDC关系图:一句话概括:CPaintDC 无效区dc,相当于BeginPaint, EndPaintCClientDC 客户区dc,相当于GetDC, ReleaseDCCWindowDC 整窗口dc, 相当于GetWindowDC, ReleaseDCCDC 任何dc, ...
2021-03-08 16:49:07 715
原创 CmemDC类 的使用方法
CmemDC类 的使用方法CMemDC其实就是对内存DC的创建与删除进行一个包装。1、在CMemDC的构造函数中创建内存DC;2、用户可以在CMemDC dc中进行图像的绘制;3、在CMemDC的析构函数中进行内存DC到目标DC的拷贝,并做相应的GDI对象清理工作。使用这样的类可以让你的代码有很大程度的简洁。举个例子:如果我们不使用CMemDC,一般我们会写下面的一段的代码,CView::OnDraw(CDC*pDC){CRectrcClient;GetClientRe...
2021-03-08 16:43:36 749
原创 句柄即GetSafeHwnd的作用
GetSafeHwnd()和GetSafeHandle()的主要区别:1.使用者不同:(1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了;(2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄。注意:在使用指针时强烈建议这么做:// pSomeWnd为一个窗体的指针if ( NULL != pSomeWnd && NULL != pSo..
2021-03-08 11:07:29 1221
原创 c++ 使用gdiplus
在要使用的工程中,增加如下代码#include< comdef.h > // 初始化一下com口// 在GDI+中,需要定义一个ULONG_PTR。#ifndefULONG_PTR#define ULONG_PTRunsignedlong*#endif// 通过typedef定义的。与上面的宏定义的作用效果是一样的。这两个,任意一种方法都可以。其他的能达到同样效果的方法也一样。#if defined(_WIN64)typedefuns...
2021-03-05 10:27:56 2672 2
原创 在虚函数 声明中写override的作用
C++保留字overrideoverride 仅在成员函数声明之后使用时才是区分上下文的且具有特殊含义;否则,它不是保留的关键字。使用 override 有助于防止代码中出现意外的继承行为。以下示例演示在未使用override 的情况下,可能不打算使用派生类的成员函数行为。编译器不会发出此代码的任何错误。class BaseClass{ virtual void funcA(); virtual void funcB() const; virtual void funcC(...
2021-03-04 15:34:48 1351 1
qt QTcpServer多线程
2024-09-03
Qt 插件QPluginLoader的使用例子
2024-08-22
aws-sdk-cpp 1.11.370
2024-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人