Debug 2 câu lệnh này sao không được ?

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

Post Reply
bvnthi
Posts: 6
Joined: Mon 29/12/2008 10:53 am

Debug 2 câu lệnh này sao không được ?

Post by bvnthi »

Giả sử mình muốn vẽ (hay tô màu) 1 hình chữ nhật gradient ở vùng MenuBar, khi chạy degbug sao không thấy nó vẽ ra ? câu lệnh sau

Code: Select all

    Dim g As New clsGradient
    Dim dc As New clsDeviceContext
    g.Rectangle dc.Handle, 0, 0, 24, 1, RGB(128, 167, 225), RGB(224, 237, 254), False
    SetMenuBarBackground Me.hwnd, dc.ConvertToBitmap(0, 0, 24, 1)
khi ấn F5 nó vẽ ra luôn mình không nhìn kịp lệnh vẽ ra là do lệnh g.Rectangle hay SetMenuBarBackground, có thể giải thích 2 câu lệnh trên được vẽ vào bộ nhớ thì phải ? mình có thể debug để xem vùng nhớ này được vẻ không ?
User avatar
siguri92
Thành viên danh dự
Thành viên danh dự
Posts: 111
Joined: Fri 01/10/2010 6:52 pm

Re: Debug 2 câu lệnh này sao không được ?

Post by siguri92 »

Hic, thiệt chẳng hiểu bạn hỏi gì. ở trên thì nói không thấy vẽ ra. ở dưới thì nói vẽ ra luôn không kịp nhìn...
  1. g.Rectangle dc.Handle, 0, 0, 24, 1, RGB(128, 167, 225), RGB(224, 237, 254), False

dòng lệnh này vẽ gradient từ màu này đến màu kia lên dc
  1. SetMenuBarBackground Me.hwnd, dc.ConvertToBitmap(0, 0, 24, 1)

dòng này chuyển sang dạng bitmap để gán vào nền của menu
User avatar
andylam1992
Thành viên danh dự
Thành viên danh dự
Posts: 380
Joined: Mon 06/04/2009 12:57 pm
Location: TP.HCM Q5
Has thanked: 2 times
Been thanked: 4 times
Contact:

Re: Debug 2 câu lệnh này sao không được ?

Post by andylam1992 »

bạn debug ko thấy có khi là do nó chưa xử lý xong, nhiều khi mấy cái hàm api mình debug cũng chằng thấy nó hiện ra, nhất là mấy cái hàm về graphic vì khi đó form của mình ko dc active.

不相信未作牺牲竟先可拥有
只相信是靠双手找到我欲求
Cần - Kiệm- Liêm(liêm kiết) - Nghĩa - Chí - Tín
User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 42 times
Contact:

Re: Debug 2 câu lệnh này sao không được ?

Post by tuyen_dt18 »

Ngoài lý do đó bạn nên xem và thay đổi lần lượt thuộc tính AutoReDraw từ True đến False xem. Ngoài ra bạn có thể thử đặt lại Code vào thủ tục Paint của Control như Form_Paint(), Picture1_Paint, ...
Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.
Post Reply

Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”