VB常用小知识点总结 C与VB

习惯了用C语言,偶尔用VB写个串口上位机程序,发现好多不习惯。所以,把用到了的知识点总结下。
1. 定义数组
与C不同,VB定义数组时是使用的数组元素的上限
Dim Packet(8) As Byte
表示定义了一个9个元素的数组,数组元素从packet(0) 到 packet(8)
2.把byte数据以hex方式显示
str = str + Hex(indata(i)) + ” ”
3.表示hex数据
Packet(0) = &HAA
4.整除与取余
Packet(7) = crc \ 256 ‘取高字节
Packet(8) = crc Mod 256 ‘取低字节
5.数字不足位数时在前面补零
方法1.
Format(Hex(indata(i)), “00”)
方法2.
String(2 – Len(Hex(indata(i))), “0”) & Hex(indata(i))
6.把数字表示为十六进制字符
Hex$(Val(Text3.Text))
例如Text3.Text = 200,则Text3.Text 是一个string 类型”200”
Val(Text3.Text) 为200,是double类型数据
Hex$(Val(Text3.Text)) 为 “C8” 是一个string类型。
7.全局变量的初始化
全局变量的初始化应该放到窗体是LOAD事件中,不能向C语言一样在文件开始初始化,否则VB会报“无效的外部过程”错误。
8.文本框获取焦点方法
Text1.SetFocus
9.窗体实现固定大小、可最小化、不可以最大化
方法一:设置窗体属性
BorderStyle 属性设置为 1,
MinButton 属性设置为 True
即可实现窗体高宽不可变,最大化按钮不可用,最小化按钮有效。
方法二:调用API
模块代码
掉用方法 call FrmStyle(Me.hwnd)
Private Declare Function SetWindowLong Lib “User32” Alias “SetWindowLongA” (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib “User32” Alias “GetWindowLongA” (ByVal Hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_SYSMENU = &H80000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_CAPTION = &HC00000
Private Const GWL_STYLE = (-16)
Public Sub FrmStyle(ByVal Hwnd As Long)
Dim l As Long
l = GetWindowLong(Hwnd, GWL_STYLE)
l = l And Not WS_SYSMENU
l = l And Not WS_MAXIMIZEBOX
l = l And Not WS_MINIMIZEBOX
l = l And Not WS_CAPTION
Call SetWindowLong(Hwnd, GWL_STYLE, l)
End Sub
10.强制要求变量声明
Option Explicit
11.使文本框不可编辑
两种方法:
Text1.Locked = True

Text1.Enabled = False

发表评论

电子邮件地址不会被公开。 必填项已用*标注