เล่น Application Programming Interface (API) - SendMessage
Friday, September 7, 2012
0
comments
โปรแกรมที่เราพัฒนาขึ้นจาก Visual Basic ก็เรียกใช้ API
เช่นเดียวกัน โดย Visual Basic ช่วยอำนวยความสะดวก
ในการเรียกโปรแกรมย่อยของ API แทนด้วยภาษาที่เรียบง่ายของ Visual Basic
แต่ทว่าขอบเขตของภาษา Visual Basic ไม่ได้ครอบคลุมไปถึงทุกๆความสามารถของ
Windows ในบางครั้งเราอาจต้องเข้าถึงจุดที่อยู่เหนือขอบเขตของ Visual Basic
โดยการเรียกใช้ API โดยตรง
การประกาศโปรแกรมย่อย API
สามารถ เขียนไว้ที่ส่วน เช่น Declaration ของโมดูล (Module) ใดโมดูลหนึ่งก็ได้ แต่โดยทั่วไปจะไว้รวมกันที่ใดที่หนึ่งในโมดูล .BAS เราอาจสร้างโมดูลขึ้นมาโมดูลหนึ่ง สำหรับจัดเก็บการประกาศฟังค์ชั่น และ ซับรูทีนของ API โดยเฉพาะก็ได้ ในการทำงานของ Windows นั้น Control หรือ ที่เรียกกันว่า Object แต่ละตัวนั้น มีการสื่อสารกันด้วยเมสเสจ (Message) เมื่อเราใช้ Method Clear กับลิสต์บ็อกซ์ จะเกิด Message "ลบรายการของตัวเองทั้งหมด" ไปให้กับ List Box ตัวนั้น เป็นต้น Microsoft Visual Basic ไม่สามารถส่ง Message เองได้ แต่สามารถใช้ฟังค์ชั่น API เพื่อส่ง Message ให้ได้โดยใช้ฟังค์ชั่น SendMessage ฟังค์ส่งข้อความนี้ จะช่วยเพิ่มเติมขีดความสามารถให้กับ Visual Basic ได้ในหลายๆด้าน
การประกาศฟังค์ชั่นของ SendMessage มีดังนี้คือ
Declare Function SendMessage Lib "User32" Alias "SendMessageA" & _
(ByVal hWnd As Long, & ByVal wMsg As Long, & _
ByVal wParam As Long, lParam As Long) As Long
เมื่อ :
hWnd
คือ Handle ของคอนโทรลปลายทางที่เราต้องการส่ง Message ไปให้
wMsg คือ ตัวเมสเสจที่การส่ง
wParam และ lParam คือ พารามิเตอร์เสริม ซึ่งมีหน้าที่ และ ความหมายแตกต่างกันไปใน Message แต่ละชนิด
0 comments:
Post a Comment