void CMyDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (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 { RECT rect; CPaintDC dc(this); //建立响应WM_PAINT消息的DC CDC *md = new CDC; //建立一暂存DC md CBitmap *bitmap = new CBitmap; //建立CBitmap位图对象 GetClientRect(&rect); //取得操作窗口大小 md->CreateCompatibleDC(&dc); //将md转换成与dc兼容的DC bitmap->m_hObject = (HBITMAP)::LoadImage(NULL,"zhulin.bmp", IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE); //加载位图 md->SelectObject(bitmap); //选择位图对象到md中 dc.BitBlt(0,0,rect.right,rect.bottom,md,0,0,SRCCOPY); //将暂存DC中的位图贴到显示DC中 delete md; //释放资源 delete bitmap; //释放资源 CDialog::OnPaint(); } }
|