- 博客(69)
- 资源 (5)
- 收藏
- 关注
原创 MFC自定义控件开发与使用指南
MFC(Microsoft Foundation Classes)框架提供了丰富的内置控件,但在实际开发中,我们常常需要创建自定义控件来满足特定的界面需求。本文将详细介绍如何在MFC中开发自定义控件,并以CCustomTextControl为例,展示自定义控件的实现和使用方法。
2025-05-03 19:29:06
1190
原创 KeyPresser 一款自动化按键工具
KeyPresser 是一款自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。时间间隔最小值、最大值相同时,将以固定的时间间隔触发时间间隔最小值、最大值不同时,将在最小、最大值之间生成随机时间间隔触发。
2025-05-03 18:07:08
792
原创 pybind11 使用指南+示例
pybind11 是一个轻量级的仅头文件C++库,用于在Python和C++之间创建无缝的接口。pybind11特别适合需要将高性能C++代码暴露给Python使用的场景,同时保持代码的简洁性和可维护性。
2025-04-30 18:19:18
431
原创 Python GIL 与 pybind11 GIL管理机制
全局解释器锁(Global Interpreter Lock, GIL)是Python解释器中的一个互斥锁,它确保任何时候只有一个线程在执行Python字节码。
2025-04-30 17:54:44
451
原创 windows实现自动化按键
KeyPresser 是一款免费的自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。
2024-07-16 14:44:14
2962
原创 ObjectARX特性面板OPM添加动态属性-资料整理
参考资料AutoCAD与动态属性PDF文档 https://www.progdomain.com/584/ObjectARX2016 OPM面板全攻略 https://blog.csdn.net/jfmyes/article/details/121392332整理中…
2024-04-29 03:07:52
486
原创 一文了解“字符集”
在计算机中每个字符都要使用一个编码来表示,而每个字符究竟使用哪个编码来表示要取决于使用哪个字符集(Charset)。计算机字符集可归类为3种:单字节字符集(SBCS)、多字节字符集(MBCS)和宽字符集(Unicode字符集)。
2022-09-20 12:24:58
2946
原创 如何学习BCGControlBar?
由于BCGControlBar是一个MFC扩展库,所以最好对MFC有所了解!MFC相关书籍也很多,例如候捷的《 深入浅出MFC》,吕鑫的《VC++就业培训宝典之MFC视频教程》等等。对MFC有所了解之后就可以继续学习BCG了。
2022-09-16 09:59:55
471
原创 CBCGPListCtrl点击表头进行排序
在实际项目中经常需要点击ListCtrl的表头进行排序,而CBCGPListCtrl又无法直接实现排序,通过以下步骤就可实现点击表头排序,希望可以帮助到各位。
2022-01-21 18:57:42
676
原创 OpenGL常用函数参数解析
glVertexAttribPointer void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);第一个参数指定我们要配置的顶点属性。还记得我们在顶点着色器中使用layout(location = 0)定义了position顶点属性的位置值(Location)吗?它可以把顶点属性的位置值设
2021-12-01 15:56:00
1012
原创 BCGControlBar问题汇总,持续更新
问:如何控制MDI程序在任务栏缩略图中是否显示每个view答:在CChildFrame中重写虚函数BOOL CanShowOnTaskBarTabs() { return FALSE; }通过返回值来控制。
2021-09-18 13:33:20
436
转载 BCGControlBar本地化(汉化)详解
BCGControlBar本地化机制提供了一个创建多语言应用程序的非常简单和可靠的方法。BCGControlBar语言包文件:本地化文件位于BCGCBPro\L.目录中,其中 - 语言名称前缀(FRA - 法国,ITA - 意大利,…)。特定语言资源DLLs位于BCGControlBar\Bin目录下:BCGCBProResCHS.dll Chinese BCGCBProResITA.dll ItalianBCGCBProResCSY.dll Czech BCGCBProResJ
2021-09-14 14:27:49
742
原创 CBCGPDockingControlBar停靠窗口的创建及其位置关系
在MS office、Visual Studio等各类应用中我们都能见到停靠窗口的身影。本文将介绍如何使用CBCGPDockingControlBar创建停靠窗口以及不同停靠窗口之间的位置关系调整。1.根据BCGControlBar Pro 应用程序向导创建一个程序如何创建一个基于BCG的应用程序,本文不再赘述,详情请参考:Application Wizard2.添加一个类使用类向导或手动添加一个继承CBCGPDockingControlBar的类,并添加WN_CREATE、WM_SIZE.
2021-08-26 14:26:05
764
原创 通过字体名获取字体文件
由于在GLFT/FreeType中需要传入字体文件作为参数,所以需要通过字体名来寻找字体文件。现已完成,特此总结分享。参考链接:https://www.codeproject.com/Articles/1235/Finding-a-Font-file-from-a-Font-namehttps://github.com/chaoticbob/Cinder-SdfText 具体看acquireFontNamesAndPaths,有读mac,windows,Linux的https://github.c.
2021-07-30 11:43:02
1223
转载 MFC 控件重绘
1. MFC 控件的重绘原理MFC 的基础控件有很多,常见的就是按钮、列表、标签、输入框等,通常一个应用程序的界面都是由这些小小的控件组合在一起形成了最终的用户界面。系统为每一个基础控件都绘制了一个默认的外观,让我们看个例子:大家可以看到,这是一个基础的 MFC 的对话框,上面有 2 个按钮,2 个标签,2 个输入框,也就组合成了大家熟悉的登录界面。这个界面确实非常"朴素",可能不太符合当下的审美需求,那如果要美化这个界面,要怎么做呢?通常有两种做法:第一种,找美工设计界面,然后给你切图,直接贴图到
2021-03-24 14:11:44
4067
1
原创 Parsing PCB Editor netlist files
Parsing PCB Editor netlist filesPSTCHIP.DATThe PSTCHIP.DAT file contains a description for each physical part used in a Capture design. The Capture netlister extracts this physical description from properties on all occurrences rather than just instan.
2021-01-06 14:27:46
438
原创 com调用excel后,进程未关闭解决方案
# COM调用结束后,进程未关闭注册lua函数,在lua中调用该函数。static int LuaCloseWindow(lua_State* L){ long hWnd = luaL_checkinteger(L, 1); unsigned long dwPid = 0; ::GetWindowThreadProcessId((HWND)hWnd, &dwPid); char cmdData[128] = { 0 }; sprintf_s(cmdData, "/c taskk.
2020-11-23 10:46:19
689
3
原创 CFileDialog lpszFilter参数
VC中CFileDialog类的lpszFilter参数用来通过后缀过滤文件。|分割,||结束CString strFilter = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
2020-11-18 14:26:15
371
原创 error C2589: “(”:“::”右边的非法标记
.\src\library\tLuaCOMConnPoints.cpp(704): error C2589: “(”:“::”右边的非法标记.\src\library\tLuaCOMConnPoints.cpp(704): error C2062: 意外的类型“unknown-type”.\src\library\tLuaCOMConnPoints.cpp(704): error C2059: 语法错误:“)”1. 错误原因 函数模板max与Visual C++中的全局的宏max冲突。...
2020-11-16 10:55:41
1227
转载 C读取写入lua table常用接口
#lua_gettable/lua_settable/lua_rawget/lua_rawset/lua_rawgeti/lua_rawseti/lua_getfield/lua_setfield//lua_gettablelua_getglobal(L, "mytable") //<== push mytablelua_pushnumber(L, 1) //<== push key 1lua_gettable(L, -2) //<== pop ke
2020-11-10 10:22:58
325
原创 c/c++遍历lua table的三种方法
#include "lua.hpp" void traverse_table(lua_State *L, int index){ lua_pushnil(L); // 现在的栈:-1 => nil; index => table while (lua_next(L, index)) { // 现在的栈:-1 => value; -2 => key; index => table // 拷贝一份 key 到.
2020-10-27 10:45:05
704
转载 通过vs工具箱拖动到对话框,使用BCGControlBar控件
类名称 描述 如何添加 CBCGPAnalogClockCtrl 使用嵌入式模拟时钟计控制。 在对话框中添加一个空的Picture控件(占位符)(1) 为此控件定义CStatic成员变量(2) 用.H文件中的CBCGPAnalogClockCtrl替换CStatic CBCGPAnimCtrl 控件显示一组具有指定帧速率的位图。 在对话框中添加一个空的Picture控件(占位符)(1) 为此控件定义CStatic成员
2020-09-02 10:10:50
933
原创 DoModal失败的原因
DoModal失败的原因MFC通常对话框不显du示的原因有父窗口HWND无效在ONINITDIALOG里用了ENDDIALOG无效的对框资源ID使用没有注册的自定义控件对话框的某些控件创建失败,如RICHEDIT,要加上AfxInitRichEdit();...
2020-08-13 11:21:29
686
1
原创 3行代码告诉你,如何使用成员函数指针作为函数参数
成员函数指针作为函数参数//定义成员函数指针typedef void(VxSheet:: *ReadObjFunc)(string); //vxSheet为类名//使用成员函数指针为参数bool VxSheet::ReadList(string strObjData, ReadObjFunc readObjFuc){ (this->*readObjFuc)(strObjData);}...
2020-07-31 18:41:29
403
转载 C++常用设计模式
原文链接:https://www.cnblogs.com/chengjundu/p/8473564.html设计模式1、工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。1.1、简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品
2020-05-14 10:49:28
270
转载 C++如何正确使用智能指针?
目录关于Jenkins持续集成是什么为什么要持续集成?持续集成怎么做?搭建GitLab+Jenkins+MSBuild持续集成环境什么是MSbuild?Jenkins插件创建一个自动编译VC工程的任务步骤关于JenkinsJenkins是一个持续集成的工具,用于自动化各种任务,包括构建、测试和部署软件。持续集成是什么大师 Martin Fowler 对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次
2020-05-11 17:36:18
182
原创 C++获取完整类型名
typeid 运算符查询类型的信息。用于必须知晓多态对象的动态类型的场合以及静态类型鉴别。语法(1) typeid( 类型 ) (2) typeid( 表达式 )必须在使用 typeid 前包含头文件 (若不包含该头文件,则每次使用关键词 typeid 都令程序非良构。)typeid 表达式为左值表达式,指代一个具有静态存储期的,多态类型 const std::type_info ...
2019-11-05 12:08:41
5851
转载 std::numeric_limits使用
std::numeric_limitsstd::numeric_limits 定义于头文件<limits> template<classT>classnumeric_limits; numeric_limits类模板提供查询各种算术类...
2019-11-04 16:41:00
7295
2
翻译 pugixml 1.10快速入门指南
pugixml 1.10快速入门指南网站https://pugixml.org存储库https://github.com/zeux/pugixml目录pugixml 1.10快速入门指南介绍安装文件物件模型载入文件访问文档数据修改文件资料保存文件反馈执照介绍pugixml是一个轻量级的C ++ XML处理库。它由具有丰富遍历/修改功能的类DO...
2019-11-01 16:32:56
2902
原创 C++ emplace作用
C++ emplace在C++开发过程中,我们经常会用STL的各种容器,比如vector,map,set等,这些容器极大的方便了我们的开发。在使用这些容器的过程中,我们会大量用到的操作就是插入操作,比如vector的push_back,map的insert,set的insert。这些插入操作会涉及到两次构造,首先是对象的初始化构造,接着在插入的时候会复制一次,会触发拷贝构造。但是很多时候我们并...
2019-10-28 14:02:25
615
KeyPresser一款自动化按键工具
2024-10-27
cereal1.3.2 C++11序列化库
2024-07-16
KeyPresser源代码
2024-07-16
PDOCR:一款好用的OCR文字识别工具
2023-03-07
luaDll+ luacom+luaiconv.rar
2020-11-23
贾志刚Opencv图像处理视频教程ppt+源码.rar
2020-05-28
文本比较工具
2019-10-05
ZWCAD一键启动.exe
2019-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人