Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Tạo ảnh nền cho Dialog trong lập trình MFC?

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    44

    Mặc định Tạo ảnh nền cho Dialog trong lập trình MFC?

    Có ai biết hàm nào Set ảnh nền cho Diaolg trong ứng dụng MFC - Dialog Basic không vậy?

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Trích trong Howto database của tui:
    Visual C++ Code:
    1.     /* 118/. How do I draw a bitmap in the background of a dialog ?
    2.      * The trick is to override the OnEraseBkgnd handler. Here's one way of doing it: */
    3.     CBitmap bitmapBkgnd;
    4.     bitmapBkgnd.Attach(LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(m_iBitmapId)));
    5.  
    6.     BOOL CTestbed2Dlg::OnEraseBkgnd(CDC* pDC)
    7.     {
    8.         CRect rect;
    9.         GetClientRect(&rect);
    10.  
    11.         CDC dc;
    12.         dc.CreateCompatibleDC(pDC);
    13.         CBitmap* pOldBitmap = dc.SelectObject(&bitmapBkgnd);
    14.  
    15.         int iBitmapWidth, iBitmapHeight ;
    16.         int ixOrg, iyOrg;
    17.  
    18.         BITMAP bm;
    19.         bitmapBkgnd.GetObject(sizeof(BITMAP), &bm);
    20.         iBitmapWidth = bm.bmWidth;
    21.         iBitmapHeight = bm.bmHeight;
    22.  
    23.        // If our bitmap is smaller than the background and tiling is
    24.        // supported, tile it. Otherwise watch the efficiency - don't
    25.        // spend time setting up loops you won't need.
    26.  
    27.         if (iBitmapWidth >= rect.Width() && iBitmapHeight >= rect.Height())
    28.         {
    29.             pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(),
    30.                         &dc, 0, 0, SRCCOPY);
    31.         }
    32.         else
    33.         {
    34.             for (iyOrg = 0; iyOrg < rect.Height(); iyOrg += iBitmapHeight)
    35.             {
    36.                 for (ixOrg = 0; ixOrg < rect.Width(); ixOrg += iBitmapWidth)
    37.                 {
    38.                     pDC->BitBlt(ixOrg, iyOrg, rect.Width(), rect.Height(),
    39.                                 &dc, 0, 0, SRCCOPY);
    40.                 }
    41.             }
    42.         }
    43.  
    44.         dc.SelectObject(pOldBitmap);
    45.         return TRUE;
    46.     }
    47.  
    48.    /** If you have static text items and want them to have the bitmap as their
    49.     * background, see Tip 117.
    50.     *
    51.     * Note that the WM_ERASEBKGND message won't appear in ClassWizard by default,
    52.     * because ClassWizard hides it from you. To create the handler, you'll have to
    53.     * learn how to stop this hiding... which is a useful thing to know anyway. If
    54.     * you go to the last right-hand tab (Class Info I think) on ClassWizard, at
    55.     * the bottom of the tab you'll see a "filter" combo which is set to "Dialog".
    56.     * Change this to "Window" and then go back to the Message Map tab. You'll now
    57.     * see a lot more messages to choose from. */
    Copy và search từ nhiều nguồn trên Internet nên không có copyright. Sorry !
    Đã được chỉnh sửa lần cuối bởi TQN : 21-10-2007 lúc 06:57 PM.

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

  1. Dialog::DoModal trong MFC. Làm thế nào để tương tác với dialog bên dưới?
    Gửi bởi rua_con trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 29-02-2012, 03:27 PM
  2. Cách gọi biến từ dialog vào dialog khác trong MFC
    Gửi bởi xXDarknessXx trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 21-12-2011, 10:08 PM
  3. gọi dialog từ 1 dialog trong Visual C++ như thế nào?
    Gửi bởi attain11 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 27-10-2010, 09:29 PM
  4. Xử lý Dialog trong MFC | Code điều Khiển Dialog con ở đâu?
    Gửi bởi AdminPro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 08-04-2009, 10:53 PM
  5. Di chuyển Dialog khi drag and drop phần thân Dialog (Client)?
    Gửi bởi mu9991 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 07-11-2008, 10:48 AM

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