vb.netpos的简单介绍

VB.NET想用GetWindowRECT获取某窗口的坐标,但测试结果是L,T,R,B显示都是0,0,0,0

很简单,原因有二。第一,VB里long是32位,但是VB.NET里是64位,Dim ksWND As Integer才对。第二,VB在API里默认传址,而VB.NET默认传值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef" lpRect As RECT) As Integer

成都创新互联公司专注于正蓝企业网站建设,响应式网站设计,商城网站开发。正蓝网站建设公司,为正蓝等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,byref lpRect As RECT) As Integer

Private Structure RECT

Dim Left As Integer

Dim Top As Integer

Dim Right As Integer

Dim Bottom As Integer

End Structure

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim ksWND As integer

Dim ksTitle As String

Dim winS As RECT

If TextBox1.Text "" Then

ksTitle = TextBox1.Text

ksWND = FindWindow(vbNullString, ksTitle)

GetWindowRect(ksWND, winS)

MsgBox("左上角坐标(" winS.Left "," winS.Top ")" vbCrLf "右下角坐标(" winS.Right "," winS.Bottom ")" vbCrLf "窗口高" winS.Bottom - winS.Top "窗口宽" winS.Right - winS.Left)

Else

MsgBox("请填写窗口名称")

End If

End Sub

vb.net尝试读取或写入受保护的内存。这通常指示其他内存已损坏

这说明你调用 API 传参存在问题。

首先有没有设置结构体内存对齐?

[StructLayout(LayoutKind.Sequential)] 加了吗?

COLORREF 不要用 Color 代替,用 int 代替

TCHAR cfFaceName[32] 定义为 Byte 数组也可以,带在传参前,必须初始化为 32 个长度

在VB.net中怎么获取 鼠标在屏幕中的坐标

Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐标声明

Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐标声明

Private Structure POINTAPI '声明坐标变量

Public x As Int32 '声明坐标变量为32位

Public y As Int32 '声明坐标变量为32位

End Structure

'以上是声明部分

'以下是窗口部分

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用时钟控件来取坐标,窗口上放个Timer组件,Enabled为允许,周期为10到100毫秒均可

Dim P As POINTAPI '声明坐标变量

Dim xx, yy '声明转换要用到的变量

GetCursorPos(P) '获取鼠标在屏幕中的位置

ScreenToClient(Me.Handle.ToInt32, P) '转换为本窗体的坐标

xx = P.x.ToString '把X转换成能显示到文本框的字符串格式

yy = P.y.ToString '把Y转换成能显示到文本框的字符串格式

TextBox1.Text = xx + "和" + yy '文本框的内容为X坐标和Y坐标

End Sub

VB.net如何让窗体在鼠标点击出显示

没听懂你的意思。如果你是想做一个像右键菜单效果的话,你可以在鼠标点击事件中获取鼠标位置,然后创建你要显示窗体的实例,把窗体的left 和 top 设成鼠标的x,和y 坐标就可以了,具体获取鼠标坐标的方法大至有2种,一种是.net 自带的,你找一找 Screen 这个对象中的属性,能找到获取鼠标坐标的方法,别一种就是用API函数获取鼠标的坐标,GetCursorPos ,该 API 具体使用方法和声明请在网上查找一下。如果有什么问题,可以再联系我。

用vb.net开发一个pos收银系统,要求如下: 课程设计 ——POS收银系统

ext1.Text = a

Text2.Text = b

c = Val(Text1.Text) + Val(Text2.Text)

End Sub

我也是刚学VB,这是我自己做的。不知道能不能帮上你的忙。 随机数字(20以内)的加法。

求大神指点vB.net 调用dm 的FindStr 时 intX 和intY 要怎么定义呀?

首先vb.net里大漠插件的findstr命令是不能用的,因为vb.net自身的问题。intx和inty值只会返回0,0. 我们要用findstrE这个命令 pos = findstr。。。。。。

然后用split function给出x和y值


网页名称:vb.netpos的简单介绍
文章源于:http://ybzwz.com/article/hipdhp.html