vb.net窗口坐標(biāo),VB窗體默認(rèn)的坐標(biāo)單位是

VB.NET想用GetWindowRECT獲取某窗口的坐標(biāo),但測試結(jié)果是L,T,R,B顯示都是0,0,0,0

很簡單,原因有二。第一,VB里long是32位,但是VB.NET里是64位,Dim ksWND As Integer才對。第二,VB在API里默認(rèn)傳址,而VB.NET默認(rèn)傳值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef" lpRect As RECT) As Integer

創(chuàng)新互聯(lián)建站主營于都網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),于都h5小程序制作搭建,于都網(wǎng)站營銷推廣歡迎于都等地區(qū)企業(yè)咨詢

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("左上角坐標(biāo)(" winS.Left "," winS.Top ")" vbCrLf "右下角坐標(biāo)(" winS.Right "," winS.Bottom ")" vbCrLf "窗口高" winS.Bottom - winS.Top "窗口寬" winS.Right - winS.Left)

Else

MsgBox("請?zhí)顚懘翱诿Q")

End If

End Sub

在VB.net中怎么獲取 鼠標(biāo)在屏幕中的坐標(biāo)

Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐標(biāo)聲明

Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐標(biāo)聲明

Private Structure POINTAPI '聲明坐標(biāo)變量

Public x As Int32 '聲明坐標(biāo)變量為32位

Public y As Int32 '聲明坐標(biāo)變量為32位

End Structure

'以上是聲明部分

'以下是窗口部分

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用時鐘控件來取坐標(biāo),窗口上放個Timer組件,Enabled為允許,周期為10到100毫秒均可

Dim P As POINTAPI '聲明坐標(biāo)變量

Dim xx, yy '聲明轉(zhuǎn)換要用到的變量

GetCursorPos(P) '獲取鼠標(biāo)在屏幕中的位置

ScreenToClient(Me.Handle.ToInt32, P) '轉(zhuǎn)換為本窗體的坐標(biāo)

xx = P.x.ToString '把X轉(zhuǎn)換成能顯示到文本框的字符串格式

yy = P.y.ToString '把Y轉(zhuǎn)換成能顯示到文本框的字符串格式

TextBox1.Text = xx + "和" + yy '文本框的內(nèi)容為X坐標(biāo)和Y坐標(biāo)

End Sub

VB.NET 坐標(biāo)查找問題

代碼就不寫了,給你思路,默認(rèn)左上角是原點,所以x的位置=窗口高度-y.

這樣就獲得xy

復(fù)雜點的辦法是重寫繪制,繪制十字,

簡單點的辦法就是十字放到picbox或者image里,然后取中,然后隱藏,確定按鈕點擊顯示,中心位置等于坐標(biāo)點,然后換算左上角控件位置,然后設(shè)置坐標(biāo).

新聞名稱:vb.net窗口坐標(biāo),VB窗體默認(rèn)的坐標(biāo)單位是
文章URL:http://muchs.cn/article18/phgddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化