工具
文章平均质量分 77
「已注销」
这个作者很懒,什么都没留下…
展开
-
Win32 SDK Gui编程系列之--OwnerDraw Button
绘制按钮 通过使用所有者绘制或子类化,可以根据喜好自定义按钮的外观和行为。如果按钮是子窗口,鼠标光标的信息会被发送到子窗口,因此需要进行子类化或鼠标捕获等相当繁琐的处理。例如,如果将表编辑器的表选择标签设置为这种自制的按钮,与使用所有者绘制或子类化相比,代码行数可能相同,而程序可能会更简单。尽管与所有者绘制相关的程序行数本身大约只有20行,但必须自行完成按钮的绘制可能会让人感到困扰。在所有者绘制中,还必须自行绘制按钮本身。通过所有者绘制实现按钮绘制完全自行处理绘制的过程称为所有者绘制。设置文字颜色为红色。原创 2024-02-05 16:37:47 · 397 阅读 · 0 评论 -
CodeFarmer Tool for Win32 SDK C/C++ RAD介绍(非免费)
一、背景:Win32程序编制,功能、运行效率综合相对全面的框架还是MFC(不带偏见,不喜勿喷),但是MFC晦涩难懂,操作需要对Window消息驱动机制熟悉,需要对Window API或SDK很深入了解,才能上手、快速编制,尽管M$对VC++(Classic Version)其实已经做了很多幕后工作。它编制的程序,除了带点.Dll库尾巴(别打包,大),其实什么都比较好。RAD框架或工具,一旦上手入迷,便“上瘾”,难以自拔,什么都想Drag && Drop一下。原创 2024-02-05 10:25:41 · 1009 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--ListView自绘OwnerDraw(续)
程序的行数与标准的列表视图几乎相同。在标准列表视图中,最左边的列只能使用左对齐(DT_LEFT),但在下面的程序中设置为居中对齐(DT_CENTER)。在Windows 7中,例如,按钮控件可以采用视觉样式的外观,但列表视图控件的列头仍然是如下所示的三维按钮,无法实现扁平化的视觉样式。在上述程序中,通过回调函数以如下方式实现,当数字位数较小时,在前面添加空格,从而实现了类似居中对齐的效果。2、视觉样式列表视图的程序详细信息 在按钮控件的情况下,没有添加或修改程序,但对于列表视图,添加了以下红色标出的一行。原创 2024-02-05 07:12:11 · 1385 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--工具栏(ToolBar)
鼠标光标放置的位置会以3D按钮的风格凸显出来。工具栏(ToolBar)原创 2024-02-04 17:30:03 · 594 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--通用对话框
通常不是离线使用这个颜色选择对话框,而是在程序中使用确定的颜色。在下一个程序中,选定的颜色被用来更改背景色。颜色选择对话框 要通过GUI进行颜色选择,可以使用ChooseColor函数打开颜色选择对话框。结构体的零清除可以使用memset(&cc, 0, sizeof(cc));或ZeroMemory(&cc, sizeof(cc));来完成,但也有像这个程序中的初始化方法。文件选择对话框 使用GetOpenFileName函数的文件选择程序和其执行画面如下所示。原创 2024-02-04 17:20:17 · 639 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--自动机(Automation)
使用winlib库后,可以将ca1d.c改写如下。创建窗口时,类名和窗口名是相同的,所以用SetWindowText函数来设置窗口名。一维细胞自动机 作为Windows编程的一个简单例子,下面展示了一个一维细胞自动机程序。通过菜单选择规则 前一节提到的程序算法相同,只是数据不同,因此非常容易统一。下面展示了程序和执行示例。同样,以下展示了被称为规则30、90、110的著名一维细胞自动机程序及其执行结果。自动化(Automation)此程序的执行结果如下图所示。原创 2024-02-04 17:12:37 · 254 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--键盘钩子技术(KeyBoard Hook)
然后,进行鼠标光标的覆盖,但在全屏复制和活动窗口复制时,修正值是不同的。完成包含鼠标光标的位图后,清空剪切板,并将更新的位图重新设置到剪切板中。使用窗口的标准功能,即PrtScr键和Alt键+PrtScr键时,不会包含鼠标光标的图像,但下面的程序包括了鼠标光标。F6和F7键也用于假名汉字转换,所以只有在执行包含鼠标光标的屏幕截图时,才启用这个键盘钩子,并在使用完毕后重置。屏幕截图(Windows8) 之前创建的基于键盘钩子的屏幕截图程序,在Windows7中运行良好,但在Windows8中出现了一些不便。原创 2024-02-04 16:41:32 · 640 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--剪贴板(Clipboard)
在DLL中,每次按下PRTSC键时,只要把计数器调高,用嵌入到朗查的程序中,剪贴板的海。这个程序没有判断是用PRTSC键进行全屏复制,还是用ALT键+PRTSC键捕捉活动窗口,首先,drawCursor的第2参数是TRUE,即活动窗口对应。虽然在这个程序的窗口画面上也显示,但是剪贴板上也恢复了修改后的位图。在这里,避免创建DLL,定期检查剪贴板的序列号,检测屏幕截图。移动这个程序后,激活其中一个窗口,将鼠标光标放在适当的位置,按ALT键+PRTSC键的话,这个程序的画面会显示包含鼠标光标的活跃窗口的图像。原创 2024-02-04 16:11:28 · 212 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--二维细胞自动机(生命游戏)(系列文章结束!)
作为独立使用,文件大小小的时候,Java应用程序版或C语言控制台应用程序也可以,但是对于大尺寸的文件,显示时间太长等不有便利性。在二进制文件的十六进制显示程序之前,使用普通控制的LISTVIEW来显示CSV文件。显示没有问题,但是对于大的二进制文件来说,显示画面需要太长时间。在读了一部分的阶段,虽然可以有开始画面显示的方法,但是显示末尾的时间不能缩短。另外,因为拇指轨道返回的值是16位,所以最后一行的显示不能与滚动条的最大值完全一致,这让我有点不满。作为横向滚动的例子,下面是语音文件的显示程序和执行例子。原创 2024-02-04 02:58:55 · 44 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--检测鼠标光标移动
滚动条的形状非常相似,但是即使把鼠标光标放在条形或拇指上,拇指的颜色也不会改变。在按下山姆的左键的状态下,山姆的颜色会变成和上面对话框的鼠标悬停相似的颜色。最后,下面的画面是用Win32 API的CreateWindowEx函数生成的滚动条。使用FlatSB_SetScrollProp函数,可以给栏杆添加颜色,但是找不到把按下拇指时的颜色换成稍微深一点的浅蓝色的方法。放在脱离拇指的杆子上时,拇指的颜色不会改变,只有杆子两端的箭头会浮起来。以上,在4个例子中,第一个对话框的滚动条看起来是最好的(根据喜好)。原创 2024-02-04 02:43:35 · 747 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--滚动条(ScrollBar)
nPage的值不能完全确定。即使是垂直滚动,如果画面的高度不是行的整数倍的话,也会出现零头,但是水平滚动这个零头的比例比较大,所以很显眼。但是,如图所示,下旋钮的值不是11(siv.nMax),而是7。经过试错的结果,发现水平滚动时,nMax不是列数,而是相当于全列宽度的像素数,nPage可以显示在画面上的像素数就可以了。生成窗口时,在样式中添加WS_VSCROLL|WS_HSCROLL的话,如下图所示,画面的底部和右端会显示滚动条。因为画面上显示的是5行,所以滚动条的旋钮(拇指)的宽度是整体的5/12。原创 2024-02-04 02:38:35 · 799 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--折线图Chart
因此,作为图表的绘制区域,左下方的原点坐标为(0.0,0.0),右上角的坐标为(1.0,1.0)进行正规化。但是,这是X、Y的值是非负值的情况,处理负值时,原点的位置会移动。drawLogGraph函数是单对数图的绘图函数,是drawLinearGraph函数之前显示的线性(比例)刻度图的绘图函数。求7天的移动平均(红色)的话,根据星期的变动会被吸收,变成非常光滑的折线图。当Y轴的数值波动很大时,只把Y轴做成对数的单对数图(下图)是有效的。在前节的图表中,追加7天移动平均的程序如下所示。原创 2024-02-04 02:13:00 · 91 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--ListView自绘OwnerDraw
当然,与纵向滚动联动,行号会跟随。在这种情况下,为了使所有列的宽度相同,将最左边的列设置为假,将第一个宽度设置为0,横向滚动将列宽度设置为0时,将这个假列的宽度扩大。表软件的话,最左边显示的列从左端开始显示,但是列表视图的话,选择单元格的右端与列表视图的右端完全一致。因为下面的程序是左对齐显示的,所以没有问题,但是要把显示放在中间或改变第1列的背景颜色的话,需要第1列的区域。在箭头键↓、↑中选择行向下、向上移动时,新单元格的框架由所有者绘图的onItemDraw函数进行,但之前的选择单元格的边框会被删除。原创 2024-02-04 01:54:18 · 472 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--工具提示ToolTip
进行按钮控制的子类化,工具提示接收鼠标光标的信息。在下面的程序中显示了在按钮上添加工具提示的方法。(工具提示是普通控制之一。将显示的字符串和鼠标光标进入哪个区域时显示工具提示等信息设置为TOOLINFO结构体,用SendMessage函数设置为工具提示窗口。因此,在不是按钮控制的自己的按钮上(不是独立的窗口,而是直接画在主窗口)上附加工具提示。在HTML中添加链接和按钮等工具提示时,只需添加title属性,如下所示即可。在标签控件和工具栏上添加工具提示的方法在各个页面上都有显示。2.在按钮上贴上工具提示。原创 2024-02-04 01:37:48 · 118 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--颜色渐变(Gradient)
在WIN32 API中,通过使用msimg32.dll中包含的GradientFill函数,可以进行这样的渐变绘制。因为从8位的COLOREF中获取16位信息,或者从两种颜色中寻找中间颜色,所以程序很笨重。例如,在下面的菜单画面中,菜单栏的背景颜色是上方的渐变为白色。另外,当鼠标出现在菜单项目上方时,该项目不仅被浅蓝色边框包围,还涂上淡淡的颜色。以前的电脑喜欢3D按钮等三维,但现在扁平的视觉风格很流行。电脑的高性能化和显示器的高清晰度、多色化,使其更容易呈现出动态且微妙的色调。这个程序的执行结果如下所示。原创 2024-02-04 01:30:20 · 116 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--计时器(周期启动)
因此,之后每1000毫秒就会发送WM_TIMER信息。第4个参数可以是NULL。执行SetTimer函数的话,每经过uElapse时间,都会发送WM_TIMER信息。在WM_TIMER消息处理中,变量count的值在EDIT控件中显示,值为+1。因此,每过1秒,0,1,2,3,...显示为。点击stop按钮,会执行KillTimer(hwnd, ID_TIMER)函数,之后就不会发送WM_TIMER信息。回调函数的情况,作为第4个参数给出了系统启动后的经过时间(单位:毫秒),所以根据情况也可以使用这个值。原创 2024-02-04 01:21:04 · 122 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--弹出式菜单
例如,点击鼠标右键显示弹出菜单,通过WM_RBUTTONDOWN信息处理获得鼠标光标的客户端窗口坐标,ClientToScree用n函数转换为屏幕坐标。在上面的程序中,数据库名称的识别号码是ID_RDB、ID_RDB+256、ID_RDB+512、... 正在做。在制作程序时,偶尔会想知道它的构造。另一方面,在上面提到的弹出菜单中,第一次点击“数据库(D)”时,会生成和注册菜单。例如,如果表名是终端菜单的话,点击表名的话,会发送WM_COMMAND信息,得到的是这个表菜单项目中附的识别号码(wp)。原创 2024-02-04 01:15:29 · 343 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--创建菜单
但是,在标准菜单的情况下,鼠标光标在菜单项目上方,该项目被矩形包围,背景颜色也变淡,成为好看的界面。“Menu 1”和“Menu 2”的父菜单的手柄是hMenu,而“Menu 1.2”的父菜单的手柄是hSubMenu1。下面的程序放在菜单栏的顶级是标准菜单,下面的子菜单是业主抽签。在程序中写成&X、&A等时,X、A被称为快捷键,按Alt键的话,菜单上的X、A会出现下划线(下划线)。因此,虽然不需要转换为ARGB格式,但总的来说程序会很笨重,所以只有在实现标准菜单无法实现的功能时才使用所有者抽签是明智的。原创 2024-02-04 01:08:12 · 275 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--鼠标光标的捕捉
在下面的程序中,按下鼠标左键时会执行SetCapture函数。按住左键移动鼠标光标后,在WM_MOUSEMOVE消息处理中用GetCursorPos函数找到鼠标光标的屏幕坐标,在标题栏中显示其值。此时,用GetPixel函数读取该位置的像素颜色,进行十六进制显示。为了获得画面的颜色编码,有各种各样的免费软件,但是因为获取颜色编码很简单,所以决定将其纳入平时使用的自制启动器中。下面的程序在按右键的状态下读取像素。也有在按下的状态和分开的状态下颜色发生变化的情况。在这种情况下,要事先截图,然后从图像中读取。原创 2024-02-03 23:53:31 · 95 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--标准控件
文字字体的变更方法如前所述,但对于标准按钮,不会发送WM_CTLCOLORSTATIC信息。但是BS_RADIOBUTTON和BS_CHECKBOX等情况下,会发送WM_CTLCOLORSTATIC信息,所以可以变更文字颜色和背景颜色。网上信息显示,不使用业主抽签的话,文字颜色、背景颜色不能变更。文字字体、文字颜色、背景颜色的设置方法基本上在所有控件中都是共通的,所以这里以静态控件为例进行说明。1. 静态控件的文字字体、文字颜色、背景颜色的设置。2. 按钮控件的文字字体、文字颜色、背景颜色的设置。原创 2024-02-03 19:14:28 · 106 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--Win32 API通用控件
根据微软的信息,用CreateStatusWindow函数生成状态栏是古老的方法,现在建议使用CreateWindow函数。生成标签控件时,在窗口样式中添加TCS_HOTTRACK的话,当鼠标出现在标签上时,文字的颜色会发生变化。下图中,鼠标没有硬拷贝,但鼠标是CHF标签上方的状态,文字变成了天蓝色。同样,在窗口样式中添加TCS_BUTTONS的话,标签的形状会变成按钮的形状。只显示标签、控件的程序tabctrl.c和根据按下的标签进行显示的程序tabcontr0l.c和各自的执行结果如下所示。原创 2024-02-03 19:05:15 · 148 阅读 · 0 评论 -
Win32 SDK Gui编程系列之-- 读写初始化文件(INI文件)
只处理按Enter键时的信息,其他信息委托EDIT控件的默认WindowProc函数处理。这与主窗口的WindowProc函数将未处理消息的处理交给DefWindowProc函数是一样的。将设置为全局变量的默认WindowProc函数的地址作为第1个参数,然后和DefWindowProc函数一样,将参数并排,调用CallWindowProc函数,从而执行默认的WindowProc函数。如下所示,生成EDIT控件后,使用SetWindowLongPtr函数,注册自己的EditWindowProc函数的地址。原创 2024-02-03 19:02:22 · 170 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--Win32API 控件的子类化
WM_KEYDOWN消息中的VK_RETURN用包装器的EditWindowProc函数处理,默认的EDIT控件的WindowProc函数没有传递消息。将设置为全局变量的默认WindowProc函数的地址作为第1个参数,之后和DefWindowProc函数一样,排列参数,调用CallWindowProc函数。代替这个默认的WindowProc函数,可以自己准备WindowProc函数来处理给控件的信息。但是,大部分的消息处理都交给默认的WindowProc函数,所以自己的WindowProc函数是包装器。原创 2024-02-03 19:00:03 · 97 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--WIN32 Gui常用API
如果是多行文本,使用lpRect参数指定的矩形区域的宽度,将矩形区域的下端扩展到文本的最后一行下方边界线。在窗口手柄参数中指定父窗口手柄,并且指定WS_CHILD和窗口ID时,是只在父窗口内运行的子窗口。通常,记忆前缀字符的“&”被解释为在下一个字符上加上下划线(_)来表示的命令,记忆前缀字符的“&&”是显示一个“&”的命令。DT_PATH_ELLIPSIS 为了适合指定的矩形区域,根据需要省略文本的中间 (...)换成如果是包含圆符号(\)的文本,则尽可能保留最后一个圆符号后面的文本。原创 2024-02-03 18:58:18 · 377 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--Windows消息
例如,按下Home键时,从WM_KEY消息处理中发送(WM_HSCROLL, SB_LEFT)消息来使用。例如,按Home键时,从WM_KEY消息处理中发送(WM_VSCROLL, SB_TOP)消息来使用。鼠标捕捉时,信息会发送到捕捉的窗口。与SB_LINELEFT、SB_LINERIGHT、SB_PAGELEFT、SB_PAGERIGHT配对,并停止拖动,松开鼠标左键时发送。与SB_LINEUP、SB_LINEDOWN、SB_PAGEUP、SB_PAGEDOWN配对,并停止拖动,松开鼠标左键时发送。原创 2024-02-03 18:47:16 · 336 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--Windows基本要素:控件
例如,对于10~50Hz等低频率的信号,选择44.1KHz、50KHz等高采样频率的话,每周期产生的信号样本数会庞大,同样的数值会持续很多。不使用静态,在WM_PAINT处理(paint函数)中,使用DrawText函数,也有画字符串“X”的方法,但是因为记述位置很远,所以很难理解。有多个按钮的时候,像单选按钮一样,只有一个可以有效的时候,有时候想让现在知道哪个是被按下的状态。点击单选按钮时,之前选择的按钮会自动取消选择,但是在SendMessage中选择状态时,不会自动解除其他按钮,如下所示。原创 2024-02-03 18:40:39 · 382 阅读 · 0 评论 -
Win32 SDK Gui编程系列之--Windows编程的基础
在基本的Windows程序中,类的注册和窗口生成等处理没有太大的差别。因为如果是演示程序的话是一样的,在正式的应用程序中,窗口名称以后可以适当改写。因此,首先不进行自己的类定义,而是使用已经注册的类的例子。点击菜单项目,会发出WM_COMMAND信息,WPARAM wParam的值是AppendMenu函数的第3参数设置的菜单ID号码,所以可以知道选择了哪个菜单项目。程序中窗口的宽度是400,高度是100,但是从执行结果可以看出,除了窗口的边框和上面的标题之外,用户可以绘制的大小是384×62。原创 2024-02-03 16:52:45 · 363 阅读 · 0 评论 -
BCX(≥7.8.7,New:8.0.8) 对象属性伴侣(预处理器)
PS:可增加私有变量(FSetter、FGetter),将之与Setter()、Getter()关联起来。PS:可增加私有变量(FSetter、FGetter),将之与Setter()、Getter()关联起来。''(增加:OR iMatchWrd(Stk$[i],"...") )''处理Case附近。CASE "case"''//(后增加下行)原创 2022-06-19 21:47:18 · 587 阅读 · 0 评论 -
实现基于AutoCAD结构化Siemens 840D常用高级程序模拟
使用实现基于AutoCAD结构化Siemens 840D常用高级编程1、表达式计算;2、变量、数组定义初始化、读取、赋值;3、实现语言结构IF...ELSE...ENDIF、CASE...OF..、FOR...ENDFOR...、LOOP...、REPEAT...P=...、REPEAT...UNTIL...、WHILE...三种GOTO等4、函数三角函数、框架、数学计算、DIV、MOD、+-*/;5、初级错误纠正、语法错误提示;6、运算、模拟各NC代码。最终实现基于AutoCAD的模拟。向终原创 2022-04-20 21:49:56 · 520 阅读 · 0 评论 -
CodeFarmer RAD Tools(原型)
C.F.(Code Farmer) RAD Tools(原型)是一个基于Excel和VBA快速生成Win32 C/C++ Gui代码的工具,它可以独立用于C/C++函数方式的编程,也可以配合将来的CFGui库使用。C/C++的函数编程方式灵活,但对于大型工程应用和高性能软件开发是首选。若要程序安全(不言而喻)、运行高效、不含第三方Lib库,则自己构建Gui(以上PDF文档链接:https://pan.baidu.com/s/11UvQf80b6Jn4ZG7nVDdHTg提取码:bpf6原创 2021-11-22 17:40:08 · 915 阅读 · 0 评论 -
突破C++硬伤限制,实现类属性Property功能,继而实现属性更改事件
可以不再用.Net,暂弃VCL,避开MFC及其堂弟们ATL、WTL的晦涩难懂,避免不了QT收费的,也已获得希望,wxWidget,还在玩泥巴,U++、Fox Toolkit 、TK/TCL们还不那么回事。兼顾运行效率和开发效率还得是Win32,那只石猴正在酝酿蹦出!昨天是一个值得纪念的日子,突破了C++语法的限制,绞尽脑汁实现了类对象的属性Property功能,继而实现了类对象的属性更改事件。,构建库框架,降低了开发的门槛,在很大程度上推动了计算机编程技术的发展!(...“伴侣”...嘿嘿,非常不错!原创 2021-11-04 08:36:16 · 634 阅读 · 0 评论 -
MyMCCT(My金属切削计算工具)
MyMCCT(My金属切削工具) 长期以来,机台操作者、包括部分工艺技术人员,对金属切削参数、切削材料在计算、应用及其效率、质量、效果等方面,没有清晰、透彻的了解。使得在工作中,切削参数的应用比较盲目,因此产生了刀具和加工效率、质量等方面的浪费、应用过度或达不到要求,与理论最佳值生产了加大偏差。 因此,设计计算程序,实现主要加工类型切削条件与参数的匹配,并通过实际数据与连续枚举数据计算获得最佳切削参数,实现主要加工类型切削条件与参数的匹配,并通过实际数据与连续枚举数据计算获得最佳切削参数。原创 2021-02-24 13:33:37 · 1505 阅读 · 2 评论 -
C++ Abstract Class Generator(CACG)
一、简介 C++ Abstract Class Generator(CACG)是一个基于Excel和VBA快速生成C++抽象类代码的工具.它小巧灵活,并支持inline、变量的Setter/Getter对函数等功能,就C++语言来说,是编程语言中的巨无霸,但对于工程应用和大型高性能软件是首选.要想有好的结果,就需要先绘制"蓝图"搭好框架,再行Coding;当然使用UML模型"标准化"可以实现,但我始终用着不顺手,索性自己搞一个小工具。二、界面简介。1、数据输入区。2、主窗体及功能。三、使用方法。1、Exc原创 2021-02-24 13:18:20 · 679 阅读 · 0 评论