论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
搜索
登录
搜索
勇芳
累计撰写
332
篇文章
累计收到
0
条评论
首页
栏目
论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
作者 【1】 的文章
2026-1-20
VisualFreeBasic代码_yGDI_文字
就是画文字 一、设置字体:gg.Font 二、设置颜色:gg.SetColor 三、输出文字:gg.DrawString x,y,"xxxx" 设置字体和颜色永久有效,若不需要改变,无需重复设置。默认为 雅黑,9号,黑色字,无底色。 成员列表 Sub Font(fName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False, Italic As UByte = False, ByVal Underline As UByte = False, ByVal StrikeOut As UByte = False) '设置字体{3.True.False}{4.True.False}{5.True.False}{6.True.False} Sub SetColor(ByVal tColor As Long, ByVal bColor As Long = -1) '设置文本颜色,字色和字的背景色,背景值-1为透明背景。 Sub DrawString(ByVal X As Long, ByVal Y As Long, nText As CWSTR) '描绘制指定的文本字符串 Sub DrawStringFC(ByVal X As Long, ByVal Y As Long, nText As CWSTR, tColor As Long, nName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False) '描绘制指定的文本字符串,带字体和颜色 Function DrawTextS(X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0) As Long '指定的矩形中绘制格式化的文本,样式为组合,见VFB帮助。 Function DrawTextFC(X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0, tColor As Long, nName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False) As Long '指定的矩形中绘制格式化的文本,带字体和颜色,样式为组合,见VFB帮助。 Sub DrawFrameStr(ByVal X As Long, ByVal Y As Long, nText As CWSTR) '描绘描边字,轮廓字,轮廓先设置笔,字为正常字 Sub DrawFrameStrR(ByVal X As Long, ByVal Y As Long, nText As CWSTR, bColor As Long) '绕写方式的轮廓字 Sub DrawFrameText(X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0) '描绘描边字,轮廓字,轮廓先设置笔,字为正常字 Sub DrawFrameTextR(X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, bColor As Long, uFormat As ULong = 0) '绕写方式的轮廓字 Function GetTextWidth(nText As CWSTR) As Long '获取文本显示宽度,自动支持DPI感知,为 100% DPI 时的数字。假如 DPI比率=1 则是实际像素值 Function GetTextHeight(nText As CWSTR) As Long '获取文本显示高度,自动支持DPI感知,为 100% DPI 时的数字。假如 DPI比率=1 则是实际像素值 Sub FontEx(fName As CWSTR = "Microsoft YaHei", fSizeH As Long = 9,fSizeW As Long = 0, Angle As Single = 0, ByVal Bold As Long = FW_NORMAL, Italic As UByte = False, ByVal Underline As UByte = False, ByVal StrikeOut As UByte = False) '设置字体扩展,带宽度和旋转角度。{3.True.False}{4.True.False}{5.True.False}{6.True.False} Font 设置字体 (fName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False, Italic As UByte = False, ByVal Underline As UByte = False, ByVal StrikeOut As UByte = False) fName 字体名称,默认 "Microsoft YaHei" fSize 字体大小,默认 9 (相应 DPI ) Bold 是否加粗,默认 False Italic 是否斜体,默认 False Underline 是否下划线,默认 False StrikeOut 是否删除线,默认 False FontEx 设置字体 (fName As CWSTR = "Microsoft YaHei", fSizeH As Long = 9,fSizeW As Long = 0, Angle As Single = 0, ByVal Bold As Long = FW_NORMAL, Italic As UByte = False, ByVal Underline As UByte = False, ByVal StrikeOut As UByte = False) 设置字体扩展,带宽度和旋转角度。 fName 字体名称,默认 "Microsoft YaHei" fSizeH 字体高度(字体大小、字号),默认 9 (相应 DPI ) fSizeW 字体宽度(字号),默认=0,表示跟随高度。 Bold 加粗多少,标准为 FW_NORMAL=400 ,数字越大越粗 Italic 是否斜体,默认 False Underline 是否下划线,默认 False StrikeOut 是否删除线,默认 False SetColor 文字颜色 (ByVal tColor As Long, ByVal bColor As Long = -1) tColor 文本颜色 bColor 背景值,默认-1为透明背景。 DrawString 描绘文本 (ByVal X As Long, ByVal Y As Long, nText As CWSTR) x,y 位置 nText 文本 DrawStringFC 直接设置字体和颜色描绘文本 直接指定字体和颜色,不改变公用设置来描绘文本 (ByVal X As Long, ByVal Y As Long, nText As CWSTR, tColor As Long, nName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False) x,y 位置 nText 文本 tColor 文本颜色 fName 字体名称,默认 "Microsoft YaHei" fSize 字体大小,默认 9 (相应 DPI ) Bold 是否加粗,默认 False DrawTextS 格式化描绘文本 (X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0) As Long 指定的矩形中绘制格式化的文本,样式为组合 x,y,w,h 位置和矩形尺寸 nText 文本 uFormat 格式化样式 返回 用了DT_CALCRECT后不描绘,返回文字高度(像素) 常用:DT_CENTER Or DT_VCENTER Or DT_SINGLELINE DT_BOTTOM 将文本对齐到矩形的底部。该值仅与DT_SINGLELINE值一起使用。 DT_LEFT 将文本对准左侧。(默认) DT_RIGHT 将文本对齐到右侧。 DT_TOP 将文本对齐到矩形的顶部。(默认) DT_CENTER 在矩形中居中文字。 DT_VCENTER 纵向中心文本。该值仅与DT\_SINGLELINE值一起使用。 DT_CALCRECT 返回格式化文本的高度,但不绘制文本。 DT_EDITCONTROL 复制多行编辑控件的文本显示特性。具体而言,以与编辑控件相同的方式计算平均字符宽度,并且该函数不显示部分可见的最后一行。 DT_END_ELLIPSIS 如果字符串的末尾不适合矩形,则会被截断,并添加省略号。 DT_HIDEPREFIX 忽略文本中的&符号(&)前缀字符。 DT_NOPREFIX 关闭前缀字符的处理。 DT_INTERNAL 使用系统字体来计算文本度量。 DT_MODIFYSTRING 修改指定的字符串以匹配显示的文本。 DT_PATH\_ELLIPSIS 对于显示的文本,用椭圆替换字符串中间的字符,以使结果符合指定的矩形。 DT_RTLREADING 右向左阅读顺序布局 DT_SINGLELINE 仅在一行上显示文字。 DT_TABSTOP 设置制表位。 DT_WORDBREAK 自动换行 DT_WORD_ELLIPSIS 截断任何不适合矩形的单词并添加省略号。 DrawTextFC 指定字体和颜色格式化描绘文本 (X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0, tColor As Long, nName As CWSTR = "Microsoft YaHei", ByVal fSize As Long = 9, ByVal Bold As UByte = False) As Long x,y,w,h 位置和矩形尺寸 nText 文本 uFormat 格式化样式,见 DrawTextS 说明 tColor 文本颜色 fName 字体名称,默认 "Microsoft YaHei" fSize 字体大小,默认 9 (相应 DPI ) Bold 是否加粗,默认 False DrawFrameStr 描绘带轮廓文本 (ByVal X As Long, ByVal Y As Long, nText As CWSTR) 描绘描边字,轮廓字,轮廓先用画图里的笔设置好宽度和颜色,字为正常字 x,y 位置和矩形尺寸 nText 文本 DrawFrameStrR 绕写描绘轮廓文本 (ByVal X As Long, ByVal Y As Long, nText As CWSTR, bColor As Long) 使用绕写方式的描绘轮廓字 x,y 位置和矩形尺寸 nText 文本 bColor 轮廓颜色 DrawFrameText 格式化描绘轮廓文本 (X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, uFormat As ULong = 0) '描绘描边字,轮廓字,轮廓先用画图里的笔设置好宽度和颜色,字为正常字 x,y,w,h 位置和矩形尺寸 nText 文本 uFormat 格式化样式,见 DrawTextS 说明 DrawFrameTextR 格式化描绘绕写轮廓文本 (X As Long, Y As Long, W As Long, H As Long, nText As CWSTR, bColor As Long, uFormat As ULong = 0) x,y,w,h 位置和矩形尺寸 nText 文本 bColor 轮廓颜色 uFormat 格式化样式,见 DrawTextS 说明 GetTextWidth 获取文本显示宽度 (nText As CWSTR) As Long 获取文本显示宽度,自动支持DPI感知,为 100% DPI 时的数字。假如 DPI比率=1 则是实际像素值 GetTextHeight 获取文本显示高度 (nText As CWSTR) As Long 获取文本显示高度,自动支持DPI感知,为 100% DPI 时的数字。假如 DPI比率=1 则是实际像素值
2026年-1月-20日
168 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic代码_yGDI_位图
画图像,有2种方式 一、画图像文件 二、画资源里的图像 上面是整幅图像一起画,有时我们需要取图像里的部分再画。 一、加载图像:LoadImg 二、拷贝图像:DrawCopy 成员列表 Sub InvertPixels(X As Long, Y As Long, W As Long, H As Long) '将指定的矩形中像素颜色翻转 Function GetPixel(ByVal x As Long, ByVal y As Long) As Long '获取像素点颜色 Function SetPixel(ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long '设置像素点颜色 Sub DrawImgRes(hInst As HINSTANCE, ResName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接画资源里的图片或ICO,必须是格式为.png,.jpg,.gif,.tiff,.ani, .ico, .cur 的图 {8.True 转换成灰度.False}{7.0 调高亮度百分比.50 从1到99.99 最高99} Sub DrawImgFile(FileName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接画文件的图片 {7.True 转换成灰度.False}{6.0 调高亮度百分比.50 从1到99.99 最高99} Sub DrawImgBuffer(Buffer As Any Ptr, BufferSize As ULong, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) '直接内存中文件数据的图片 {7.True 转换成灰度.False}{6.0 调高亮度百分比.50 从1到99.99 最高99} Sub LoadImgFile(FileName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) '加载文件图像到 m_bDc ,便于后面重复使用,再次加载将消耗前面加载的。 {3.True 转换成灰度.False}{2.0 调高亮度百分比.50 从1到99.99 最高99} Function LoadImgRes(hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) As HANDLE '加载资源图像到 m_bDc ,便于后面重复使用,成功返回图像句柄,失败返回0(再次加载将消耗前面加载的句柄) {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99} Sub LoadBmpRes(hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False) '加载资源中BMP图像到 m_bDc ,便于后面重复使用,再次加载将消耗前面加载的。 {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99} Sub DrawCopyImg(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, rop As DWORD = SRCCOPY) '描绘由LoadImg加载来的图,主要用来像画工具栏里的小按钮{9.SRCAND AND合并(光栅操作代码).SRCCOPY 直接拷贝.SRCERASE 目标取反合并.SRCINVERT Xor合并.SRCPAINT Or合并.WHITENESS 调色板1索引.BLACKNESS 调色板0索引.DSTINVERT 目标取反.MERGECOPY And源模式组合.MERGEPAINT Or反向源.NOTSRCCOPY 源取反拷贝 .NOTSRCERASE Or组合源,合成后取反.PATCOPY 模式拷贝.PATPAINT Or源取反与模式并.PATINVERT Xor源合并} Sub DrawCopyImgAlpha(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, TeMeDu As Long) '半透明 描绘由LoadImg加载来的图,TeMeDu为透明度 Sub DrawCopyImgColor(xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, tColor As Long) '扣色 描绘由LoadImg加载来的图 Sub LoadImgBuffer(Buffer As Any Ptr, BufferSize As ULong, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) '从内存中文件数据加载图片到像到 m_bDc ,便于后面重复使用,再次加载将销毁前面加载的。 {4.True 转换成灰度.False}{3.0 调高亮度百分比.50 从1到99.99 最高99} InvertPixels 颜色翻转 (X As Long, Y As Long, W As Long, H As Long) 将指定的矩形中像素颜色翻转 GetPixel 获取像素点 (ByVal x As Long, ByVal y As Long) As Long 获取像素点颜色,返回RGB颜色,是GDI的颜色 SetPixel 设置像素点 (ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long 设置像素点颜色,返回原来的颜色,是RGB颜色,是GDI的颜色 DrawImgRes 描绘资源图像 (hInst As HINSTANCE, ResName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) 描绘资源里的图片或ICO,必须是格式为.png,.jpg,.gif,.tiff,.ani, .ico, .cur 的图 hInst 模块句柄,使用 app.hInstance 即可,也可以获取其它DLL的资源,输入DLL模块句柄 ResName 资源名称 x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False DrawImgFile 描绘文件图像 (FileName As CWSTR, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) 描绘图片文件 FileName 文件名,带路径 x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False DrawImgBuffer 描绘缓存区图像 (Buffer As Any Ptr, BufferSize As ULong, X As Long, Y As Long, W As Long = 0, H As Long = 0, dimPercent As Long = 0, bGrayScale As Long = False) 描绘缓存区里的图片数据,也可以称为描绘内存中的图片 Buffer 缓存区指针(内存地址) BufferSize 长度 x,y,w,h 描绘的位置和大小,单位是像素,w,h 为0时,描绘原尺寸大小 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False LoadImgFile 预加载图像文件 (FileName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) 预加载图像文件,用于后面重复使用和特殊使用(DC是 yGDI.m_bDc ) FileName 文件名,带路径 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False clrBackground 背景色,假如图像有透明颜色,将会被背景色填充 LoadImgRes 预加载资源图像 (hInst As HINSTANCE, ResName As CWSTR, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) As HANDLE 预加载资源图像,用于后面重复使用和特殊使用(DC是 yGDI.m_bDc ) hInst 模块句柄,使用 app.hInstance 即可,也可以获取其它DLL的资源,输入DLL模块句柄 ResName 资源名称 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False clrBackground 背景色,假如图像有透明颜色,将会被背景色填充 成功返回图像句柄,失败返回0 LoadImgBuffer预加载缓存区图像 (Buffer As Any Ptr, BufferSize As ULong, dimPercent As Long = 0, bGrayScale As Long = False, clrBackground As Long = 0) 预加载缓存区里的图片数据,也可以称为描绘内存中的图片 Buffer 缓存区指针(内存地址) BufferSize 长度 dimPercent 调高亮度百分比 从1到99 最高99 bGrayScale 是否转换成灰度图像 =True =False clrBackground 背景色,假如图像有透明颜色,将会被背景色填充 DrawCopyImg 描绘预加载图像 (xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, rop As DWORD = SRCCOPY) 描绘预加载图像 xDest , yDest , wDest , hDest 目标位置和大小 xSrc , ySrc , wSrc, hSrc 原图像的位置和大小 rop 光栅操作代码,一般用:SRCCOPY SRCAND AND合并 SRCCOPY 直接拷贝 SRCERASE 目标取反合并. RCINVERT Xor合并 SRCPAINT Or合并 WHITENESS 调色板1索引 BLACKNESS 调色板0索引 DSTINVERT 目标取反 MERGECOPY And源模式组合 MERGEPAINT Or反向源 NOTSRCCOPY 源取反拷贝 NOTSRCERASE Or组合源,合成后取反 PATCOPY 模式拷贝 PATPAINT Or源取反与模式并 PATINVERT Xor源合并 DrawCopyImgAlpha 半透明描绘预加载图像 (xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, TeMeDu As Long) 半透明描绘预加载图像 xDest , yDest , wDest , hDest 目标位置和大小 xSrc , ySrc , wSrc, hSrc 原图像的位置和大小 TeMeDu 透明度 0--100 百分比 DrawCopyImgColor 扣色描绘预加载图像 (xDest As Long, yDest As Long, wDest As Long, hDest As Long, xSrc As Long, ySrc As Long, wSrc As Long, hSrc As Long, tColor As Long) 扣色描绘预加载图像 xDest , yDest , wDest , hDest 目标位置和大小 xSrc , ySrc , wSrc, hSrc 原图像的位置和大小 tColor 扣除的颜色,图像中有这样的色彩就不会被描绘。
2026年-1月-20日
233 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic代码_yGDI
WIn系统提供的绘画就是 GDI ,是一切绘画的底层(当然还有 DX、OpenGL,那些更复杂的3D绘画,我门这里说的2D平面绘画),GDI 非常繁琐,功能非常多,为了方便使用,因此封装了一个 yGDI 的类提供给VFB里使用。 什么是GDI? GDI是 win操作系统里的2D绘画API,属于WIN里的内核函数,无论你用什么编程,反正到最后都是在个API,后来WIN系统又增加了一个增强版的 GDI ,我们称为 GDI+ ,GDI 和 GDI+ 是共存的,并不是二选一 什么是 yGDI? FreeBasic语言自带的画图语句,虽然可以跨平台,但不支持特定窗口画图,因此只能直接用 WIN系统的API 画图,此绘图API,微软称其为:GDI ,GDI 为2D 绘画API 后来又出了一批增强功能的GDI,称为GDI+,由于API 操作非常繁琐,因此 VisualFreeBasic5 引入了 yGDI 类,可以很简单的方法来操作 GDI 和 GDI+ 来绘画。 绘图分为 2D 和 3D ,2D主要是由CPU计算,3D主要由GPU计算(3D中也有平面2D绘画)\ 2D就是平面绘画,在WIn系统中无一例外,都使用GDI核心,yGDI 对其包装,极大的方便使用,可以在库文件里查看到所有源码,还可以修改。 必备基础或须知 (全WIN系统全语言通用GDI概念,学会后不管任何语言,只要是WIN系统都适用) 每个窗口和控件,其实是一个个画板,我们可以任意作画,具体在哪里画,WIN系统引入了设备句柄,代码类型为:hDC ,一般我们称为 DC ,某个窗口 DC用 GetDC 或 GetWindowDC 来获取。当然DC也可是打印机或其它设备,可以自己画其它设备上了。\ 要理解GDI是如何绘画的,我们可以先打开 WIN系统里的【画图】应用,就可以直观的明白,方法一样,所不同的是应用软件是用鼠标拖动画,我们用代码画。\ GDI 分为几个元素:笔、刷、字、图\ 笔:用来画线条的,可以设置颜色和宽度,GDI+ 还可以设置透明度、和笔帽等。\ 刷:用来填充某个区域,可以是颜色、形状、图片,GDI+ 还可以设置渐变、透明度等。\ 字:就是写字的呗,可以设置字体、大小、颜色,底色, GDI+ 有更多的文字特效。\ 图:就是图片、位图,可以把图贴到目标上,可以加各种特效,如透明等,GDI+ 支持更多图像文件。\ 绘图前要先设置好上面的元素,GDI和GDI+各自一套设置,是各自独立,为同一个画板绘画,\ 设置好笔和刷,用 画线、画矩形、画圆、画多边形 函数就画上内容了,写字函数写字,贴图函数贴图。 颜色值:32位数值,4个字节,GDI只用3个,GDI+用4个,第4个是透明度 A,=0全透明 =255不透明\ GDI 16进值:0BGR 内存中结构:RGB0 使用函数:BGR (r, g, b) \ GDI+ 16进值:ARGB 内存中结构:BGRA 使用函数:RGBA (r, g, b, a) 注意:无窗口和BAS工程需要添加引用,有窗口的工程会自动引用,不需要我们自己写代码引用。 #include Once "yGDI.inc" 准备工作 主动绘图模式 绑定DC Dim DC As HDC = GetDC(Picture1.hWnd) Dim gg As yGDI = DC '画画开始----------------------------- ...........一系列画画 '画画完成 ------------------------------- gg.Redraw ReleaseDC Picture1.hWnd, DC '销毁DC 绑定窗口句柄 Dim gg As yGDI = Picture1.hWnd '画画开始----------------------------- ...........一系列画画 '画画完成 -----------当函数结束, gg 变量被回收前会自动执行 gg.Redraw 被动绘图模式(刷新模式,必须在绘画事件里使用) Function Form1_Picture1_WM_Paint(hWndForm As hWnd, hWndControl As hWnd) As LResult Dim gg As yGDI = yGDI(hWndControl, GetSysColor(COLOR_WINDOW), True) gg.DrawEllipse 10,10,100,50 Function = TRUE ' 告诉系统,我们自绘了,不需要系统绘画。 End Function 坐标系和坐标单位 坐标原点(0, 0)位于绘图表面(窗口或控件)的左上角。x 轴正方向是从左向右,y 轴正方向是从上向下。 坐标单位为,像素。支持系统的 DPI ,确保在用户在任何系统中,都显示同比例的大小。 假如,系统的DPI是 125%,你画的 正方形,设置参数为 100像素,那么真实显示的是 125像素,不同系统的DPI,会自动缩放,我们编写软件,就按照 100像素编写即可。 特点: 1,自带绘图缓冲,全部画完结束后自动输出到屏幕,画画非常快。\ 2,同时初始化好 GDI 和GDI+,2者可以随意混合使用。\ 3,自动感知系统DPI,写代码时按 DPI 100% 设置 位置和大小即可,不需要考虑不同DPI的情况** 'GDI常用封装类,其它API 可以直接用 gg.m_Dc 调用API\ '为了加速GDI 画画速度,增加了 内存DC 用来缓存,不然画太多东西屏幕会闪,\ '调用中不需要知道内存DC,只是其它API操作,用 gg.m_Dc 内存DC来画 'WM_PAINT 消息里用 Dim gg As yGDI = yGDI(窗口句柄,GetSysColor(COLOR_WINDOW),True)\ '其它地方画画用 Dim gg As yGDI = 窗口句柄\ 'GDI分为:笔、刷、字体、位图、 辅助事件处理 =================================================== '注意:自绘状态下预防闪耀,要在 _CUSTOM 事件里加以下代码\ Select Case wMsg Case WM_ERASEBKGND **Return True '防止擦除背景,不加这个会闪的。** End Select 常用的常量 nPenStyle ------ Long,指定画笔样式,可以是下述常数之一\ PS_SOLID 画笔画出的是实线\ PS_DASH 画笔画出的是虚线(nWidth必须不大于1)\ PS_DOT 画笔画出的是点线(nWidth必须不大于1)\ PS_DASHDOT 画笔画出的是点划线(nWidth必须不大于1)\ PS_DASHDOTDOT 画笔画出的是点-点-划线(nWidth必须不大于1)\ PS_NULL 画笔不能画图\ PS_INSIDEFRAME 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理
2026年-1月-20日
429 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic指南_APP
这是内置变量,当前程序的相关内容,如EXE文件、路径、版本等等。 你虽然可以重新赋值更改它,但不建议这么做 在自己代码中直接使用 print App.成员 成员 说明 Comments As Wstring * 100 注释 CompanyName As Wstring * 100 公司名 EXEName As Wstring * 100 程序的EXE名称 FileDescription As Wstring * 100 文件描述 hInstance As HINSTANCE 程序的实例句柄 Path As Wstring * 100 EXE的当前路径 ProductName As Wstring * 100 产品名称 LegalCopyright As Wstring * 100 版权所有 LegalTrademarks As Wstring * 100 商标 ProductMajor As Long 产品主要编号 ProductMinor As Long 产品次要编号 ProductRevision As Long 产品修订号 ProductBuild As Long 产品内部编号 FileMajor As Long 文件主要编号 FileMinor As Long 文件次要编号 FileRevision As Long 文件修订号 FileBuild As Long 文件内部编号 ReturnValue As Integer 返回的用户值
2026年-1月-20日
253 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic指南_内置函数和类型
已经内置在 VisualFreeBasic 在中的函数或类,写代码,可以直接调用。 一般都是提供给VFB内核使用的,当然我们也可以调用它 函数或类型 说明 yGDI 类 GDI 封装类,方便画图 vfb_Remove_Control_Ptr 删除数据指针 vfb_Set_Control_Ptr 设置控件数据指针 FLY_VFB_Layout_Handle FLY_VFB_Layout_hWndForm 处理控件布局 vfb_Get_Control_Ptr 获取控件数据指针 FF_AddTooltip 工具提示 FLY_DoMessagePump 消息循环函数 FLY_ResourceToIcon 资源获取图标句柄 GetCodeColorGDI 把控件特殊颜色值,转换为 GDI 色 ,返回-1 为不使用或默认 GetCodeColorGDIplue 把控件特殊颜色值,转换为 GDI+ 色 ,返回0 为不使用或默认 gFLY_GetFontHandles 由字体字符,返回字体句柄 FormControlsPro_TYPE 保存控件的私有属性,每个控件都不同,全部在此,各取所需。 APP_TYPE 程序员可以通过共享APP变量访问的公共信息。 App 当前程序的相关内容,如EXE文件、路径、版本等等。 vfb_Control_Ptr_Save 控件数据指针保存处 以上内容是VFB核心内容,不可以随意更改。
2026年-1月-20日
402 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic指南_代码安全
我们编写代码过程中,很难避免意外情况,造成代码丢失,比方:突然停电、VFB崩溃、硬盘损坏,误修改保存 等等,因此VFB也做出了一系列的安全措施。 1,恢复状态 关闭VFB后重新开启VFB,恢复原来打开的工程和文件。 这是预防意外关闭VFB,和正常关闭VFB后,可以恢复到原先的状态,方便继续开发软件。 注:此功能,在选项中可以,属于可选功能,默认开启 2,自动保存 每次修改代码或工程相关的,20秒后会自动保存文件和工程 这是预防突然停电、VFB崩溃等意外 注:此功能,在选项中可以,属于可选功能,默认开启 3,工程备份 每次打开一个工程,就先备份这个工程到其它文件夹。 狡兔三窟,可以设置最多三个文件夹来备份,默认备份到 C 盘,需要自己设置 这是预防硬盘损坏、中病毒、误删除等等。 注:此功能,在选项中可以,属于可选功能,默认开启 4,代码自动备份 每次修改代码后,备份一个新文件到备份文件夹中,超过1天,每天保留1份,超过1月,每月保留1份。 这是预防误修改,可以去找回原来的代码 注:此功能,在选项中可以,属于可选功能,默认开启 5,打开工程备份和文件备份 为了方便随时可以打开来查看备份,在主页中,随时来打开工程或文件
2026年-1月-20日
277 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic指南_基本操作
双击代码库可插入到代码区 双击标签切换代码和设计 点击加号可切换和新增 可以把标签拖出独立窗口 工具和工作区可以左右、上下调节 底部工具区也可以拖出独立窗口 标签右键菜单 点击代码,底部显示详细说明 属性名双击切换中英文 属性选择列表双击可以切换 刷新和名称都可以左右调节
2026年-1月-20日
355 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic指南_基本流程
一、新建工程 选择EXE工程 输入自己软件的名称 创建完成的样子 二、拖放控件 控件区选择一个控件 摆上控件 三、编写事件代码 双击控件 编写代码 四、生产软件(编译) 点编译执行 已经运行的软件 五、软件文件 打开工程文件夹 软件输出文件夹 软件文件
2026年-1月-20日
391 阅读
0 评论
VisualFreeBasic编程文档
2026-1-19
勇芳软件收费功能使用说明文档
[勇芳全系列软件] 勇芳开发的20多款软件,全部免费使用,其中就几款带收费增值功能,需要收费使用,其它软件全功能免费。 全部软件都可以不收费一直使用,没时间限制,也无广告,无流氓,不损坏系统。 温馨提示:请在使用本软件及购买收费功能前,仔细阅读本说明文档,确保充分理解各项规则。购买收费功能后,将视为您已认可本文档内容,后续因未阅读说明导致的使用问题及退款纠纷,将按本文档及软件用户协议处理。 一、功能权限及收费说明 1.1 功能权限划分 软件核心基础功能均为免费开放,无需充值,无需登陆,无需注册,即可正常使用,满足日常需求。 收费功能为基础功能的拓展增值服务,比方:记牌器和军棋迷的互通功能等等。 1.2 关键注意事项 软件的基础功能可独立完整使用,若仅需基础辅助服务,无需购买收费功能,避免不必要的消费。 收费功能需在基础功能正常运行的前提下使用,若基础功能无法正常使用(如游戏未适配、没反应等等),购买收费功能后仍无法使用,此类情况不支持退款。 请确认自身需求及游戏适配性后,再决定是否购买收费功能,一经购买,除软件故障导致无法使用外,概不退还费用。 二、软件登录操作步骤 请按照以下步骤完成软件登录,确保账号正常关联,才能使用收费功能及充值服务。 打开已安装完成的软件,点击‘登陆’进入登录界面; 选择登录方式:(没账号的,先点‘注册’,注册一个账号) 注册时需要留自己的QQ号:(以后忘记密码,可以通过QQ找回密码,不然忘记密码,账号作废) 三、收费功能价格查看方法 输入你的账号,登录软件后,使用时间和价格列表。 消费越多,价格越便宜,右上角会显示打折多少,显示的价格是打折后的价格。 四、充值操作步骤 确认需购买的时间后,按以下步骤完成充值,充值成功后就可以购买时间了。 在登陆页面,点击【充值】 跳转至充值界面,输入你自己的账号,给你的账号充值 按提示扫码付款,付款数必须和你下单的数一致,才会自动充值 支付完成后,返回登陆,你就看到自己充值的软件米了。 提示:充值时请确认账号无误,避免充错账号;充值过程中请勿关闭页面,若出现支付成功但订单未同步的情况,保留支付凭证并联系客服核实。 五、购买软件时间 选择你要购买的时间,然后双击它,就提示确定购买,确定后就是收费状态了 六、常见问题(FAQ) Q:充值后收费功能仍无法使用? A:请先确认所玩游戏在支持列表内,且基础功能可正常运行;若均无问题,重启软件或联系客服排查。 Q:可以退款吗? A:除软件故障导致收费功能无法使用外,因个人误充、游戏不支持、无需使用等原因,不予退款,请谨慎购买。 Q:套餐到期后会自动续费吗? A:不会自动续费,需要时间过期后再重新购买时间 Q:关闭软件后,时间还会走吗? A:时间不是走的,是会到时间过期,使用的是【包时制】,比方包月,不管你用不用,一个月后就过期。 六、联系方式 若在登录、充值、使用收费功能过程中遇到问题,可通过以下方式联系客服: 软件客服:在软件的很多地方,有一个【客服】点他 客服QQ:370037607 服务时间:全年无休(大概是 10点到22点),但可能忙碌,睡觉,外出。没在时先留言,没意外情况下,24小时内回复。 本说明文档最终解释权归勇芳工作室所有,如有功能更新,将同步更新本文档,敬请留意。
2026年-1月-19日
336 阅读
0 评论
勇芳系列软件帮助说明教程
2026-1-18
警惕流氓解压软件:实用指南与推荐
⚠️ 紧急提醒!警惕流氓解压软件诈骗,绝非作者收费! 各位下载使用我软件的朋友,近期收到大量用户反馈:下载软件压缩包后,打开时被要求扫码付费解压,误以为是我收取费用,遇到问题后找我退款,对此我深感抱歉并紧急发文提醒——所有要求付费解压的弹窗,均是流氓解压软件的诈骗行为,与我本人及软件无关! 请大家务必仔细阅读本文,避免上当受骗,同时学会正确解压方式,顺利使用软件。 🚫 骗局真相:流氓解压软件的“强盗操作” 很多国内大厂的解压软件,已沦为恶意诱导付费的工具,典型套路如下: 你双击下载好的软件压缩包(后缀.zip/.rar),系统默认调用这类流氓解压软件打开; 立刻弹出强制置顶弹窗,标注“付费解压”“会员解锁”“需扫码激活”等字样,附带二维码/付款链接; 弹窗刻意弱化“解压软件”标识,让不懂技术的用户误以为是「软件作者要求付费激活」; 你付款后,解压软件仅完成解压,软件本身是否能正常运行、出现问题,均与该解压软件无关,且费用不会流入我账户。 📌 重点强调: 我开发的所有软件,无任何“付费解压”“扫码激活”要求,免费分享的软件全程免费使用,付费软件也会在官网/论坛明确标注付款渠道(仅通过我的官方账号/店铺),绝不会通过解压环节收费! 🔍 如何识别流氓解压软件?(附典型特征) 遇到以下情况,直接判定为流氓软件,立即关闭,切勿付款: 打开压缩包后,弹窗强制要求「扫码支付」「开通会员」才能解压,无免费解压选项; 界面充斥大量广告(弹窗广告、悬浮广告),按钮标注模糊(“免费试用”实为诱导开通会员); 解压时默认勾选捆绑软件,不注意就会安装一堆无用程序; 弹窗标注“XX解压大师”“XX压缩王”等名称,且无官方正规官网标识。 ✅ 推荐3款「免费无广告、正规安全」的解压工具 1. Bandizip(首选,界面简洁,支持全格式) 特点:完全免费,无广告、无捆绑,支持ZIP、RAR、7Z等所有压缩格式,操作简单,适合所有用户; 下载渠道:认准官网 https://www.bandisoft.com/bandizip/ ,拒绝第三方平台下载,避免被篡改捆绑。 2. 7-Zip(开源免费,轻量纯净) 特点:开源软件,完全免费无广告,体积小,解压速度快,兼容性强,适合追求极简的用户; 下载渠道:官网 https://www.7-zip.org/ ,选择对应系统版本(Windows/macOS)。 3. WinRAR(经典老牌,免费可用) 特点:老牌解压软件,虽提示“购买授权”,但可永久免费使用(仅弹窗提醒,关闭即可),无广告、无付费解压套路; 下载渠道:官网 https://www.win-rar.com/ ,避免下载国内修改版。 📝 正确解压步骤(新手必看) 先卸载电脑上已有的流氓解压软件(控制面板→程序卸载,找到对应软件删除); 从上方推荐的官网下载正规解压工具,安装时取消所有捆绑选项(若有); 右键点击下载好的软件压缩包,选择「用Bandizip/7-Zip/WinRAR打开」; 点击“解压到”,选择保存路径,即可免费完成解压,无需任何付费操作; 解压后找到.exe后缀的软件文件,双击即可正常运行。 🚨 被骗后如何处理? 保留付款凭证(截图付款记录、弹窗界面),联系对应解压软件的客服,要求退款; 若客服拒绝退款,可向12315平台(https://www.12315.cn/ )投诉,举报恶意诱导付费行为; 立即卸载该流氓解压软件,更换为上述正规工具,避免再次被骗。 💡 最后再次提醒 我的软件从下载(仅官方渠道:www.yfvb.com、bbs.yfvb.com)到使用,全程无任何解压付费、扫码激活要求; 凡是打开压缩包弹出的付费弹窗,均是解压软件的诈骗行为,与我无关,切勿上当; 若使用软件时遇到问题(无法运行、功能异常等),可在本论坛留言或联系我,我会尽力协助解决,但因流氓软件付费产生的损失,无法为大家退款,请谅解。 请大家相互转告,避免更多人被骗!如果觉得本文有用,欢迎点赞、转发,帮助更多使用软件的朋友避开陷阱~ 感谢大家的理解与支持!
2026年-1月-18日
1967 阅读
0 评论
留言或交流
31
32
33
34