• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        用Windows API取得窗體句柄二例

        用Windows API取得窗體句柄二例

        更新時間:2022-05-05 文章作者:未知 信息來源:網絡 閱讀次數:

        文/胡克

          Windows通過句柄(Handle)識別每個窗體、控件、菜單和菜單項,當程序運行時,它所包含的每個部件都有一個惟一確定的句柄同其他的部件相區別句柄在Windows API中具有舉足輕重的作用,現舉三例,有興趣的讀者不妨一試。

          獲取窗體和控件的句柄

          
          步驟如下:

          1、為了看到顯示于屏幕上所有的窗體和控件的句柄,用SetWindowPos函數設置窗口始終在最上面,其他窗口不能覆蓋它,并使其只以標題顯示于屏幕左上角。

          (1)新建一工程,打開API Viwer:Add-ins→API Viewer→File→Load text file→Win32api.txt。

          (2)將SetWindowPos函數的聲明粘貼到窗體的聲明部分:Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long。

          (3)程序啟動時調用SetWindowPos函數,窗體Load事件代碼如下:

          Private Sub Form_Load()

          SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, conSwpNoActivate Or conSwpShowWindow'使窗體一直置于最頂層

          End Sub

          臥龍傳說提醒:當第二個參數hWndInsertAfter的值為-1時置于頂層;值為-2時不置于頂層。

          2、為了找到鼠標指針的X和Y坐標,用上面同樣的方法,通過API Viewer工具把獲取的鼠標指針位置的API函數GetCursorPos的聲明和結構類型聲明粘貼到窗體的聲明部分:

          Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

          Private Type POINTAPI

           x As Long

           y As Long

          3、用API Viewer把指定點的窗口的句柄的API函數WindowFromPointXY的聲明粘貼到窗體的聲明部分:

          Private Declare Function WindowFromPointXY Lib "user32" Alias

          "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

          4、在窗體上添加timer控件,并把Interval屬性設為500(毫秒),用如下的Timer事件完成操作:

          Private Sub Timer1_Timer()

          Dim xy As POINTAPI'(聲明變量類型)

          GetCursorPos xy'(取得XY的座標)

          ahwnd = WindowFromPointXY(xy.x, xy.y) '(取得當前鼠標坐標下窗口的句柄)

          Me.Caption = ahwnd'(在標題欄顯示當前坐標下窗口的句柄)

          End Sub

          獲取激活窗口的句柄

          用GetFocus函數可獲得激活窗口(擁有輸入焦點的窗口)的句柄。

          1、用API Viewer工具將函數GetFocus的聲明粘貼到窗體的聲明部分:

          Private Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long

          2、新建一工程,添加兩個文本框text1和text2,兩個文本框控件的GotFocus事件代碼如下:

          Sub Text1_GotFocus()

           h&& = GetFocus&&()

           Debug.Print h&&(在立即窗口顯示當前窗口句柄)

          End Sub

          Private Sub Text2_GotFocus()

           h&& = GetFocus&&()

          Debug.Print h&

          End Sub

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产精品成人免费视频网站京东| 亚洲熟妇无码爱v在线观看| 亚洲AV无码成人精品区狼人影院 | 亚洲精品黄色视频在线观看免费资源| 免费无码又黄又爽又刺激 | 亚洲AV成人无码网天堂| 日韩一级视频免费观看| 亚洲av永久中文无码精品| 日本红怡院亚洲红怡院最新| 亚洲AV无码久久精品狠狠爱浪潮| 搡女人免费免费视频观看| 亚洲精品国产品国语在线| 四虎国产精品永久免费网址| 日韩精品视频免费在线观看| 亚洲国产精品成人AV在线| 亚洲AV永久无码精品一区二区国产 | 精品无码一区二区三区亚洲桃色| 激情小说亚洲图片| 国产免费丝袜调教视频| 亚洲综合无码精品一区二区三区| 亚洲性色AV日韩在线观看| 色猫咪免费人成网站在线观看| 亚洲黄色免费网站| 西西大胆无码视频免费| 成a人片亚洲日本久久| 亚洲熟妇av一区二区三区漫画| 久久午夜羞羞影院免费观看| 亚洲午夜久久久影院| 91久久青青草原线免费| 亚洲日韩欧洲乱码AV夜夜摸 | 无码一区二区三区免费视频| 又大又硬又粗又黄的视频免费看| 亚洲精品国产精品乱码视色 | 亚洲精品美女久久久久99小说| 久久久久久一品道精品免费看| www.亚洲日本| 9久9久女女免费精品视频在线观看| 亚洲av最新在线观看网址| 亚洲国产精品无码中文字| 韩国欧洲一级毛片免费| 国产午夜不卡AV免费|