หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 4 9 7 8 6 5 8

7 ธันวาคม พ.ศ.2549
690 Users On-Line.
Visitors - Page views
 8 2 3 6 5 7 6
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

เล่น Application Programming Interface (API) - SendMessage

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 5/11/2549 10:37:00
(อ่าน : 21259) 
การเรียกใช้งานโปรแกรม API Text Viewer

Windows API แท้จริงแล้วก็คือ แก่นของ Windows หรือ Windows API ก็เปรียบเหมือนกับ MS-DOS.SYS สำหรับระบบปฏิบัติการ (Operating System - OS) ของ MS-DOS นั่นเอง โดยที่มันจะเก็บอยู่ในรูปแบบของ Dynamics Link Libraries อยู่ในไฟล์ที่มีนามสกุล DLL ในขณะที่ Windows กำลังรันอยู่ ไฟล์เหล่านี้จะถูกโหลดขึ้นมาด้วย และคงอยู่ในหน่วยความจำอยู่อย่างนั้น แต่ละโปรแกรมย่อยใน API จะมีตัวตน (Instance) เพียงตัวเดียว ไม่ว่าจะมีกี่โปรแกรมเรียกใช้มันก็ตามที การทำงานในลักษณะนี้เรียกว่า Dynamic Linking ซึ่งแตกต่างจากการเรียกโปรแกรมย่อย ในสภาพแวดล้อมที่ไม่ใช่ Windows ข้อดีของการทำ Dynamic Linking ก็คือ ประหยัดทรัพยากรระบบ ซึ่งในที่นี้ก็คือ หน่วยความจำ และ ฮาร์ดดิสต์ เนื่องจากแต่ละโปรแกรม ใช้โค้ดจากโปรแกรมย่อยร่วมกัน ตามที่ได้กล่าวมาแล้ว ข้อดีอีกข้อหนึ่ง คือ มีมาตรฐานการติดต่อผู้ใช้เหมือนกัน เราจะสังเกตได้ว่า เมนูของแต่ละโปรแกรมของ Windows มีลักษณะเหมือนกัน ไดอะล็อกซ์สำหรับจัดเก็บไฟล์ หรือ เปิดไฟล์ก็มีรูปร่างเหมือนกัน ทั้งนี้ก็เพราะการเรียกใช้โปรแกรมย่อย API ชุดเดียวกันนั่นเอง

โปรแกรมที่เราพัฒนาขึ้นจาก 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 แต่ละชนิด

อ่านเพิ่มเติมได้ที่นี่ :
การส่ง Message เพื่อทำการค้นหาคำที่มีอยู่ใน List Box
การใช้งาน ComboBox ด้วย Method อนุบาลแมวเหมียว กับ การใช้ Win32 API ว่าใครมันจะเร็วกว่ากัน
กระดานข่าวทิป เทคนิค สาระน่ารู้


จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560