Không có ai giúp mình sao ? Chán nhỉ ? Mình nghĩ rằng đây là một lỗi rất hay gặp của newbie. Mà ai cũng từng là newbie, vậy ắt hẳn là gặp rồi. Thế tại sao ko có ai giúp dzậy ???
hi every1,
Không hiểu sao chương trình của tớ cứ sau một thời gian chạy là tất cả màu tạo bằng CreateSolidBrush, CreatePen,... đều bị biến thành màu trắng hết. SetTextColor ko bị biến màu. Ai bết thì chỉ cách khắc dùm.
Xin cảm ơn và hậu tạ ---!
Không có ai giúp mình sao ? Chán nhỉ ? Mình nghĩ rằng đây là một lỗi rất hay gặp của newbie. Mà ai cũng từng là newbie, vậy ắt hẳn là gặp rồi. Thế tại sao ko có ai giúp dzậy ???
Nói vậy ai hiểu được, cứ đưa code đây xem nào![]()
Life:\> dir
Tại vì bạn tạo ra đối tượng Brush và Pen mà không giải phóng nó. Hãy nhớ giải phóng bất kỳ đối tượng nào được tạo bằng hàm create trước khi hàm được trả về. Bạn có thể quẳng đoạn code trong hàm onPaint.
Chúc thành công.
Hic mình tìm ra nguyên nhân rồi. Tại có đoạn mình GetDC mà quên ko ReleaseDC. Thành ra lâu ngày nó tích tụ, nó mới bị như thế !
Nếu mình không nhầm thì hình như hồi trước mình chỉ có CreateBrush thôi mà ko có DeleteObject và nó cũng lỗi trắng. ( "Hình như" thôi nhé, cũng có thể là hồi trước mình ko ReleaseDC ). Sau đó mình DeleteObject thì thấy nó ko còn bị nữa. Có lẽ muốn tránh lỗi trắng thì phải làm cả 2 việc : ReleaseDC và DeleteObject.Nguyên bản được gửi bởi imaging
Bạn nên tìm đọc cuốn "Lập Trình Windows" của Lê Hữu Đạt.
Tớ đang học dở cuốn đó mà ! ( Đùa chút thui, bạn làm sao mà biết tớ đang học cuốn đó nhỉ ? Cảm ơn vì đã có trách nghiệm )Bạn nên tìm đọc cuốn "Lập Trình Windows" của Lê Hữu Đạt.
Đã được chỉnh sửa lần cuối bởi hieubm : 13-02-2007 lúc 10:05 PM.
Lạ nhỉ, chưa thấy lỗi này bao giờ, cậu thử viết một cái code ngắn mô tả lỗi này rồi upload lên xem sao :-??
Bác muốn gặp lỗi này à ? Đơn giản lắm. Bác thử làm một cái hàm vẽ hình chữ nhật đặc tô màu ở giữa. Trong hàm, bác chỉ cho GetDC, CreateSolidBrush mà không có ReleaseDC và DeleteObject. Sau đó dùng hàm đó để vẽ ra một hình chữ nhật trên cửa sổ chương trình. Bác SetTimer cho nó 1ms thì vẽ lại cái hình đó một lần. Hoặc là bác thiết lập "Show window contents while dragging" ở trong System Properties, và thay đổi kích thước cửa sổ liên tục.
Đảm bảo cái hình chữ nhật đó sẽ bị mất màu và biến thành màu trắng. Tuy nhiên, nhiều khi bác phải kiên trì và đợi lâu lâu một chút ( khoảng 1 phút ) nó mới có hiệu ứng đó.