标签:style blog color os 使用 sp div on log
1 //按钮重绘函数 2 void CWeather091001Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { 3 CDC buttonDC; 4 CBitmap bitmapTrans; 5 BITMAP bmp; 6 CDC mem; 7 CRect rc; 8 buttonDC.Attach(lpDrawItemStruct->hDC); 9 //得到用于绘制按钮的DC 10 mem.CreateCompatibleDC(&buttonDC); 11 //准备向按钮区域传输图形 12 if(lpDrawItemStruct->CtlID == IDC_CLOSE)//重绘按钮的资源ID 13 { 14 rc = lpDrawItemStruct->rcItem; 15 //获取按钮所占的矩形大小 16 UINT state = lpDrawItemStruct->itemState; 17 //获取按钮当前的状态,不同状态绘制不同的按钮 18 if (state & ODS_FOCUS)//如果按钮已经取得焦点,绘制选中状态下的按钮 19 { 20 bitmapTrans.LoadBitmap(IDB_CLOSE3); 21 } else { 22 bitmapTrans.LoadBitmap(IDB_CLOSE1); 23 } 24 bitmapTrans.GetBitmap(&bmp); 25 CBitmap * old = mem.SelectObject(&bitmapTrans); 26 //向按钮传输位图,使用stretcnblt可以使图片随按钮大小而改变 buttonDC.StretchBlt(rc.left,rc.top,rc.right,rc.bottom,&mem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); mem.SelectObject(old); bitmapTrans.DeleteObject(); 27 } 28 CDialogEx::OnDrawItem(nIDCtl, lpDrawItemStruct); 29 }
标签:style blog color os 使用 sp div on log
原文地址:http://www.cnblogs.com/kingbin/p/4040149.html