16,473
社区成员
发帖
与我相关
我的任务
分享
HANDLE obj=::LoadImage(hInstance,TEXT("C:\\bb.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
bool n=bitmap.Attach(obj);
hBitmap=bitmap;
我实在看不懂你到底要用MFC的CBitmap类,还是要用API的HBITMAP,来访问位图。void CMFCtestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
hdc=::BeginPaint(hwnd, &ps);
hdcMem=CreateCompatibleDC(hdc);
HANDLE hOld = SelectObject(hdcMem, hBitmap);
//HDC testdc=::GetDC(hwnd);
::BitBlt(hdc,0, 0,100, 100 ,hdcMem, 0,0 ,SRCCOPY);
SelectObject(hdcMem, hOld );
DeleteDC(hdcMem);
::EndPaint(hwnd, &ps);
}
HBITMAP hBitmap;
CBitmap bitmap;
HDC hdc, hdcMem;
HINSTANCE hInstance;
PAINTSTRUCT ps;
HWND hwnd;
int CMFCtestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
hwnd=GetSafeHwnd();
hInstance =AfxGetInstanceHandle();
HANDLE obj=::LoadImage(hInstance,TEXT("C:\\bb.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
bool n=bitmap.Attach(obj);
hBitmap=bitmap;
return 0;
}
hdc=::BeginPaint(hwnd, &ps);
hdcMem=CreateCompatibleDC(hdc);
SelectObject(hdcMem, hBitmap);
//HDC testdc=::GetDC(hwnd);
::BitBlt(hdc,0, 0,100, 100 ,hdcMem, 0,0 ,SRCCOPY);
DeleteDC(hdcMem);
::EndPaint(hwnd, &ps);