Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Cách tạo bitmap transparent trong MFC?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    58

    Mặc định Cách tạo bitmap transparent trong MFC?

    Em có 1 cái ảnh bmp 48x48, xung quanh nó là nền trắng, vậy có cách nào làm cho nền trắng đó trong suốt khi in lên cửa sổ ko ạ?
    Cám ơn các anh trước nhé!
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    C++ Code:
    1.     CPaintDC dc(this); // Ne^'u là cho hàm Paint
    2.     CBitmap bm;
    3.     CDC memDC;
    4.     CRect rect;
    5.     GetClientRect(&rect);
    6.  
    7.     if(bm.LoadBitmapW(IDB_BITMAP))
    8.     {
    9.         memDC.CreateCompatibleDC(&dc);
    10.         memDC.SelectObject(&bm);
    11.         BITMAP bmInfo;
    12.         bm.GetBitmap(&bmInfo);
    13.         // set transparent
    14.         // create mask
    15.         CDC* dcMask = new CDC();
    16.         CBitmap* bmMask = new CBitmap();
    17.         dcMask->CreateCompatibleDC(&dc);
    18.         bmMask->CreateBitmap(bmInfo.bmWidth,bmInfo.bmHeight,1,1,0 );
    19.         dcMask->SelectObject(&bmMask);
    20.         bmMask->DeleteObject();
    21.  
    22.         dcMask->BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memDC, 0,0,NOTSRCCOPY);
    23.         dc.BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,dcMas k,0,0,SRCPAINT);
    24.         dc.BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memD C,0,0,SRCAND);
    25.         //dc.StretchBlt(0,0,rect.Width(),rect.Height(),&memD C,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
    26.     }

    Đây là đoạn code mình dùng cho chương trình của mình, bạn xem thử nhé.

    Nhân tiện cảm ơn HieuBm đã giúp mình về cái này.

    Kid nhớ đưa code vào tag cho dễ đọc nha !
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 18-10-2008 lúc 07:15 PM. Lý do: Đưa code vào tag code

  3. #3
    Ngày gia nhập
    10 2008
    Bài viết
    58

    Cám ơn bạn nhé, cách của bạn hiệu nghiệm đấy!

  4. #4
    Ngày gia nhập
    03 2011
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    C++ Code:
    1.     CPaintDC dc(this); // Ne^'u là cho hàm Paint
    2.     CBitmap bm;
    3.     CDC memDC;
    4.     CRect rect;
    5.     GetClientRect(&rect);
    6.  
    7.     if(bm.LoadBitmapW(IDB_BITMAP))
    8.     {
    9.         memDC.CreateCompatibleDC(&dc);
    10.         memDC.SelectObject(&bm);
    11.         BITMAP bmInfo;
    12.         bm.GetBitmap(&bmInfo);
    13.         // set transparent
    14.         // create mask
    15.         CDC* dcMask = new CDC();
    16.         CBitmap* bmMask = new CBitmap();
    17.         dcMask->CreateCompatibleDC(&dc);
    18.         bmMask->CreateBitmap(bmInfo.bmWidth,bmInfo.bmHeight,1,1,0 );
    19.         dcMask->SelectObject(&bmMask);
    20.         bmMask->DeleteObject();
    21.  
    22.         dcMask->BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memDC, 0,0,NOTSRCCOPY);
    23.         dc.BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,dcMas k,0,0,SRCPAINT);
    24.         dc.BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memD C,0,0,SRCAND);
    25.         //dc.StretchBlt(0,0,rect.Width(),rect.Height(),&memD C,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
    26.     }

    Đây là đoạn code mình dùng cho chương trình của mình, bạn xem thử nhé.

    Nhân tiện cảm ơn HieuBm đã giúp mình về cái này.

    Kid nhớ đưa code vào tag cho dễ đọc nha !
    Chào bạn, mình là newmem bạn có thể hướng dẫn cụ thể hơn được không???? Ai chuyển qua mã c# hộ mình đc không????
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi anhthuy1213 : 23-04-2013 lúc 12:35 AM.

Các đề tài tương tự

  1. Thiết lập transparent cho static text trong MFC ko chạy ??
    Gửi bởi langman trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 26-10-2012, 09:01 AM
  2. Cách sử dụng bitmap trong C#?
    Gửi bởi princehai trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 05-11-2011, 06:59 PM
  3. Hướng dẫn tạo đối tượng bitmap bằng phương thức Bitmap(Type, String)
    Gửi bởi haui91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 21-08-2011, 08:39 AM
  4. cách transparent 1 bitmap trong C#?
    Gửi bởi tienbao trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 22-12-2010, 09:11 AM
  5. Transparent MaskedTextBox?
    Gửi bởi tun_tun trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 27-04-2010, 12:23 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn