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

Đề tài: Cách load một ảnh Bitmap làm Background

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

    Mặc định Cách load một ảnh Bitmap làm Background

    Có ai biết cách load một ảnh Bitmap làm Background cho chương trình không?
    Nếu có thì chỉ mình với

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

    - Load ảnh ở hàm OnCreate(LPCREATESTRUCT lpCreateStruct):
    C++ Code:
    1. picture.LoadBitmap(IDB_PICTURE);
    - Vẽ ở hàm OnPaint:
    C++ Code:
    1.     CPaintDC dc(this);
    2.     RECT    rt;
    3.     CDC     memDC;
    4.     CBitmap *oldBmp;
    5.     BITMAP  bmpInfo;
    6.  
    7.     GetClientRect(&rt);
    8.     picture.GetBitmap(&bmpInfo);
    9.     memDC.CreateCompatibleDC(&dc);
    10.     oldBmp = memDC.SelectObject(&picture);
    11.     dc.StretchBlt(  0, 0, rt.right-rt.left, rt.bottom-rt.top,
    12.                     &memDC,
    13.                     0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight,
    14.                     SRCCOPY);
    15.     memDC.SelectObject(oldBmp);

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

    Bạn có thể viết một chương trình như thế không?
    Càng đơn giản càng tốt nha.
    Cảm ơn nhiều!

    C++ Code:
    1. #include <windows.h>
    2.  
    3. LONG WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
    4.  
    5. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
    6.     LPSTR lpszCmdLine, int nCmdShow)
    7. {
    8.     WNDCLASS wc;
    9.     HWND hwnd;
    10.     MSG msg;
    11.  
    12.     wc.style = 0;                                   // Class style
    13.     wc.lpfnWndProc = (WNDPROC) WndProc;             // Window procedure address
    14.     wc.cbClsExtra = 0;                              // Class extra bytes
    15.     wc.cbWndExtra = 0;                              // Window extra bytes
    16.     wc.hInstance = hInstance;                       // Instance handle
    17.     wc.hIcon = LoadIcon (NULL, IDI_WINLOGO);        // Icon handle
    18.     wc.hCursor = LoadCursor (NULL, IDC_ARROW);      // Cursor handle
    19.     wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // Background color
    20.     wc.lpszMenuName = NULL;                         // Menu name
    21.     wc.lpszClassName = "MyWndClass";                // WNDCLASS name
    22.  
    23.     RegisterClass (&wc);
    24.    
    25.  
    26.     hwnd = CreateWindow (
    27.         "MyWndClass",               // WNDCLASS name
    28.         "SDK Application",          // Window title
    29.         WS_OVERLAPPEDWINDOW,        // Window style
    30.         CW_USEDEFAULT,              // Horizontal position
    31.         CW_USEDEFAULT,              // Vertical position        
    32.         CW_USEDEFAULT,              // Initial width
    33.         CW_USEDEFAULT,              // Initial height
    34.         HWND_DESKTOP,               // Handle of parent window
    35.         NULL,                       // Menu handle
    36.         hInstance,                  // Application's instance handle
    37.         NULL                        // Window-creation data
    38.     );
    39.  
    40.     ShowWindow (hwnd, nCmdShow);
    41.     UpdateWindow (hwnd);
    42.  
    43.     while (GetMessage (&msg, NULL, 0, 0)) {
    44.         TranslateMessage (&msg);
    45.         DispatchMessage (&msg);
    46.     }
    47.     return msg.wParam;
    48. }
    49.  
    50. LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,
    51.     LPARAM lParam)
    52. {
    53.     PAINTSTRUCT ps;
    54.     HDC hdc;
    55.  
    56.     switch (message) {
    57.    
    58.     case WM_PAINT:
    59.         hdc = BeginPaint (hwnd, &ps);
    60.         Ellipse (hdc, 10, 10, 300, 300);
    61.         Ellipse (hdc, 20, 20, 10, 10);
    62.         EndPaint (hwnd, &ps);
    63.         return 0;
    64.  
    65.     case WM_DESTROY:
    66.         PostQuitMessage (0);
    67.         return 0;
    68.     }
    69.     return DefWindowProc (hwnd, message, wParam, lParam);
    70. }

    Bạn nhớ đưa code vào tag code nha

    Trích dẫn Nguyên bản được gửi bởi bboy0303 Xem bài viết
    - Load ảnh ở hàm OnCreate(LPCREATESTRUCT lpCreateStruct):
    C++ Code:
    1. picture.LoadBitmap(IDB_PICTURE);
    - Vẽ ở hàm OnPaint:
    C++ Code:
    1.     CPaintDC dc(this);
    2.     RECT    rt;
    3.     CDC        memDC;
    4.     CBitmap    *oldBmp;
    5.     BITMAP    bmpInfo;
    6.  
    7.     GetClientRect(&rt);
    8.     picture.GetBitmap(&bmpInfo);
    9.     memDC.CreateCompatibleDC(&dc);
    10.     oldBmp = memDC.SelectObject(&picture);
    11.     dc.StretchBlt(    0, 0, rt.right-rt.left, rt.bottom-rt.top,
    12.                     &memDC,
    13.                     0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight,
    14.                     SRCCOPY);
    15.     memDC.SelectObject(oldBmp);
    Mình có một chương trình vẽ hình Elip sau. Bạn có thể tải về và làm một Background cho nó được không?

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

    Cái này em chỉ biết làm trên MFC, còn lập trình đồ họa với API hơi khó nên em ko nghiên cứu.

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    17

    Trích dẫn Nguyên bản được gửi bởi bboy0303 Xem bài viết
    Cái này em chỉ biết làm trên MFC, còn lập trình đồ họa với API hơi khó nên em ko nghiên cứu.
    Bạn cứ viết thử một chương trình của bạn đi!
    MFC cũng dc

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

  1. Graphic Load một bitmap đã tạo lên Picturebox
    Gửi bởi khanhpm212 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 10-05-2013, 03:24 AM
  2. Load ảnh bitmap trong OpenGL, không có báo lỗi nhưng mà hình ảnh không load được ra màn hình?
    Gửi bởi SusuSun trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 15-10-2012, 03:12 PM
  3. Cách load ảnh bitmap lên dialog trong MFC như thế nào?
    Gửi bởi chang_kho_thuy_chung trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 13
    Bài viết cuối: 11-07-2011, 10:37 PM
  4. Load bitmap lên toolbar bằng Win API như thế nào?
    Gửi bởi iduymanht trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 01-04-2011, 12:11 PM
  5. Cách load ảnh bitmap lên dialog bằng MFC???
    Gửi bởi haba trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 23-11-2010, 05:14 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