• Thứ Hai, 19/06/2006 09:47 (GMT+7)

    Sử dụng LoadPicture trong VB6

    Câu hỏi :
    Trong VB 6, khi sử dụng hàm LoadPicture, làm sao để load được hình ảnh từ nhiều vị trí khác nhau trong cùng 1 bức hình. Ví dụ:
    • Mouse over thì hiện ra hình từ vị trí 0:0 tới 13:10
    • Mouse down thì hiện ra hình từ vị trí 14:0 tới 27:10
    •  Mouse not over thì hiện ra hình từ vị trí 14:11 tới 27:21
    Ngoài biện pháp dùng chương trình xử lý ảnh để cắt ảnh ra thành 4 file riêng rồi load thì còn cách nào khác không?


    Trả lời :

    Bạn cần phân biệt giữa hoạt động load file ảnh vào ứng dụng và hoạt động hiển thị 1 phần hay toàn bộ nó lên màn hình. Đây là 2 hoạt động khác nhau. Để load file ảnh vào ứng dụng, bạn có thể dùng hàm LoadPicture để load động file đó, nhưng nếu muốn dễ dàng hơn, bạn nên thiết kế trực quan 1 đối tượng PictureBox trong Form hiện hành rồi thiết lập giá trị cho thuộc tính Picture của nó về đường dẫn của file ảnh tương ứng (nếu muốn ẩn đối tượng PictureBox trong Form, bạn thiết lập giá trị thuộc tính Visible của nó về False).

    Còn về hiển thị vùng ảnh lên đối tượng giao diện, bạn có thể dùng method PaintPicture của các đối tượng Form, PictureBox, Image để vẽ 1 vùng ảnh gốc lên 1 vùng màn hình mong muốn của đối tượng vẽ. Ngoài ra, bạn cũng có thể gọi hàm API Windows như BitBlt(), StretchBlt() để vẽ vùng bitmap từ DC gốc (Device Context) sang vùng màn hình mong muốn trong DC đích.
    Bạn có thể đọc thêm các trang web trong CD MSDN để biết thông tin cụ thể và chi tiết về method PaintPicture, hàm API BitBlt(), StretchBlt().

     

    Chuyên mục: Lập trình