การเปลี่ยนแปลงคำบรรยายหรือรูปภาพแบบไดนามิกมักจะเห็นได้ในภาพยนตร์หรือโทรทัศน์ เมื่อผลิตเอกสารการนำเสนอมัลติมีเดีย เช่น ซอฟต์แวร์การสอนมัลติมีเดียหรือโฆษณา มักจำเป็นต้องเปลี่ยนแปลงรูปภาพและข้อความแบบไดนามิก ในฐานะเครื่องมือการพัฒนาอันทรงพลังสำหรับซอฟต์แวร์ Windows VB6.0 มีแนวโน้มการใช้งานที่กว้างขวางในการเขียนโปรแกรมมัลติมีเดีย บทความนี้กล่าวถึงการใช้ตัวจับเวลา VB6.0 รวมกับฟังก์ชัน Windows API เพื่อให้ได้เอฟเฟกต์พิเศษ เช่น การปรับขนาดแบบไดนามิกและการซีดจางของรูปภาพหรือข้อความ
1. วิธีการเขียนโปรแกรมเพื่อให้ทราบถึงการปรับขนาดแบบไดนามิกและเอฟเฟกต์การเฟดเอาท์ของกราฟิกและข้อความ
1. ส่วนต่อประสานโปรแกรม
ตั้งชื่อแบบฟอร์ม Form1 และตั้งค่าคุณสมบัติ Windowstate เป็น 2 ตั้งค่าการควบคุมและคุณสมบัติต่อไปนี้ในรูปแบบ Form1: ตัวควบคุมป้ายกำกับ Label1 ซึ่งมีสีด้านหลังเท่ากับสีหลังของ form1; Bondstyle คือ 0 และขนาดอัตโนมัติเป็น True อิมเมจควบคุมรูปภาพ 1, Stratch และ Visible นั้นเป็น True ทั้งคู่ Bordstyle คือ 0 กล่องรูปภาพสองตัวควบคุม Picture1 และ Picture2 คุณสมบัติ Visible Picture1 เป็น False และ Picture2 เป็น True คุณสมบัติ AutoRedraw Picture1 เป็น True และ Picture เป็น False คุณสมบัติ ScaleModel เป็นทั้ง Pixels ตัวจับเวลาสามตัวควบคุม Timer1, Timer2 และ Tirner3; ปุ่มคำสั่งควบคุมอาร์เรย์ cmd (0), ..., Cmd (4) ซึ่งมีคุณสมบัติคำบรรยายคือ: "ซูมข้อความ", "ซูมภาพ", "ซ่อนข้อความ", "รูปภาพ" ซ่อน" และ "ออก"
2. การปรับขนาดข้อความแบบไดนามิก
ด้วยการเปลี่ยนคุณสมบัติขนาดของข้อความเป็นประจำผ่านการควบคุมตัวจับเวลาของ VB6.0 จึงสามารถบรรลุผลของการขยายหรือย่อข้อความแบบไดนามิกได้ ในโปรแกรม ขนาดข้อความของแอ็ตทริบิวต์คำอธิบายของ label Label1 จะถูกควบคุมผ่านกระบวนการจูนเนอร์ของ timer1 เหตุการณ์ cmd_click ที่ทริกเกอร์โดย cmd(0) จะทริกเกอร์กระบวนการ timer1_time ซึ่งควบคุมวิธีที่ข้อความเปลี่ยนแปลงผ่านตัวแปรลอจิคัล 1(0) (องค์ประกอบอาร์เรย์) เมื่อ 1(0)=true แบบอักษรจะถูกขยายแบบไดนามิก และเมื่อใด 1(0)=false ทำให้แบบอักษรเล็กลงแบบไดนามิก
3. การปรับขนาดกราฟิกแบบไดนามิก
ตั้งค่าคุณสมบัติการยืดของตัวควบคุมรูปภาพ image1 เป็นจริง เพื่อให้ขนาดของรูปภาพในตัวควบคุมเปลี่ยนแปลงตามขนาดของตัวควบคุม imagel เปลี่ยนแปลง ด้วยการเปลี่ยนขนาดของการควบคุมอิมเมจเป็นประจำผ่านกระบวนการจูนเนอร์ของตัวจับเวลา 2 ทำให้เกิดเอฟเฟกต์ของการปรับขนาดไดนามิกของรูปภาพ เหตุการณ์ cmd_click ที่ถูกกระตุ้นโดย cmd(1) จะทริกเกอร์กระบวนการ timer2_time ซึ่งควบคุมวิธีที่รูปภาพเปลี่ยนแปลงผ่านตัวแปรลอจิคัล 1(1) เมื่อ 1(1)=true มันจะควบคุมการขยายขนาดไดนามิกของรูปภาพเมื่อ 1 (1)=false จะควบคุมการลดขนาดไดนามิกของรูปภาพ
4. เอฟเฟกต์ข้อความเฟดเข้าและเฟดออก
ใช้หลายคำจากสตริงเป็นค่าคำบรรยายของป้ายกำกับ Label1 หากจำนวนคำที่ตัดจากสตริงเพิ่มขึ้น (จนกว่าจะเท่ากับจำนวนคำทั้งหมดในสตริง) เอฟเฟกต์ข้อความจะจางลง และหาก จำนวนคำที่ดักฟังลดลง (จากจำนวนคำในสตริง) จำนวนอักขระทั้งหมดในสตริงลดลงเหลือ 0) และได้เอฟเฟกต์ข้อความจางลง เอฟเฟกต์นี้เกิดขึ้นได้โดยการเปลี่ยนจำนวนคำที่ดักจับตลอดเวลา: กระบวนการของตัวจับเวลา 3 ทริกเกอร์โดย cmd (2) เหตุการณ์ md_click ทริกเกอร์กระบวนการ timer3_time และควบคุมวิธีที่ข้อความเปลี่ยนแปลงผ่านตัวแปรลอจิคัล 1(2) เมื่อ 1(2)=true ข้อความจะจางหายไป และเมื่อ 1(2)=false ข้อความจะจางหายไป .
5. เอฟเฟ็กต์การเฟดเข้าและเฟดเอาท์ของกราฟิก
ซึ่งทำได้โดยใช้ฟังก์ชัน Windows API BitBlt เพื่อคัดลอกรูปภาพ การใช้ฟังก์ชัน BitBlt คือ:
ความหมายของแต่ละพารามิเตอร์คือ: hDestDC และ hSrcDC แสดงถึงตัวจัดการตารางคำอธิบายอุปกรณ์เป้าหมายและตัวจัดการตารางคำอธิบายอุปกรณ์ต้นทางตามลำดับ นั่นคือการคัดลอกรูปภาพจาก hSrcDC ไปยัง hDestDC คุณสมบัติ hDC ของตัวควบคุม Picturellox คือตัวจัดการบริบทของอุปกรณ์ที่เราต้องการใช้ x, Y แสดงถึงตำแหน่งของมุมซ้ายบนของเป้าหมาย, nWidth, nHeight แสดงถึงความกว้างและความสูงของเป้าหมาย นั่นคือตำแหน่งใดในตารางบริบทของอุปกรณ์เป้าหมายที่ควรคัดลอกรูปภาพ และควรคัดลอกความกว้างและสูงเพียงใด xsrc และ ySrc แสดงถึงตำแหน่งมุมซ้ายบนในอิมเมจต้นฉบับ นั่นคือตำแหน่งที่จะเริ่มการคัดลอก พารามิเตอร์ DwRop แสดงถึงวิธีการวาด และโดยทั่วไปจะใช้วิธีคัดลอกโดยตรง ในกรณีนี้ SRCCOPY จะถูกใช้
2. รหัสโปรแกรมเพื่อปรับขนาดรูปภาพและข้อความแบบไดนามิกและเอฟเฟกต์พิเศษแบบเฟดเข้าและเฟดเอาท์
โปรแกรมข้างต้นได้รับการดีบั๊กภายใต้สภาพแวดล้อม VB6.0 และ Windows98/2000
-