//创建区域 bool CRgnButton::CreateControlRgn(COLORREF crTrans) { CImageHandle ImageHandle(&m_ImageBack); if (ImageHandle.IsResourceValid()) { //创建临时图 CSkinImage BufferImage; int nButtonWidth=m_ImageBack.GetWidth()/5; int nButtomHeight=m_ImageBack.GetHeight(); BufferImage.Create(nButtonWidth,nButtomHeight,32); ImageHandle->BitBlt(BufferImage.GetDC(),0,0,nButtonWidth,nButtomHeight,0,0); BufferImage.ReleaseDC(); //创建区域 HRGN hRgn=BufferImage.CreateImageRegion(crTrans); if (hRgn!=NULL) { m_crTrans=crTrans; SetWindowPos(NULL,0,0,nButtonWidth,nButtomHeight,SWP_NOMOVE); SetWindowRgn(hRgn,TRUE); m_ButtonRgn.DeleteObject(); m_ButtonRgn.Attach(hRgn); return true; } } return false; }
//初始化函数 BOOL CScoreView::OnInitDialog() { __super::OnInitDialog(); //设置数据 m_lBaseScore=0L; m_lGameTax=0L; memset(m_lGameScore,0,sizeof(m_lGameScore)); memset(m_szUserName,0,sizeof(m_szUserName)); //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //居中窗口 CenterWindow(GetParent()); CImageHandle ImageHandle(&m_ImageBack); if (ImageHandle.IsResourceValid()) { //创建临时图 CSkinImage BufferImage; int nImageWidth=m_ImageBack.GetWidth(); int nImageHeight=m_ImageBack.GetHeight(); BufferImage.Create(nImageWidth,nImageHeight,32); ImageHandle->BitBlt(BufferImage.GetDC(),0,0,nImageWidth,nImageHeight,0,0); BufferImage.ReleaseDC(); //创建区域 CRgn ImageRgn; BufferImage.CreateImageRegion( ImageRgn, RGB( 255, 0, 255 ) ); if ( (( HRGN )ImageRgn) !=NULL) { SetWindowPos(NULL,0,0,nImageWidth,nImageHeight,SWP_NOMOVE); SetWindowRgn(( HRGN )ImageRgn,TRUE); ImageRgn.DeleteObject(); return true; } } return TRUE; }
//创建区域 bool CRgnButton::CreateControlRgn(COLORREF crTrans) { CImageHandle ImageHandle(&m_ImageBack); if (ImageHandle.IsResourceValid()) { //创建临时图 CSkinImage BufferImage; int nButtonWidth=m_ImageBack.GetWidth()/5; int nButtomHeight=m_ImageBack.GetHeight(); BufferImage.Create(nButtonWidth,nButtomHeight,24); ImageHandle->BitBlt(BufferImage.GetDC(),0,0,nButtonWidth,nButtomHeight,0,0); BufferImage.ReleaseDC(); //创建区域 CRgn RgnControl; BufferImage.CreateImageRegion(RgnControl,crTrans); //创建区域 if (RgnControl.GetSafeHandle()!=NULL) { //设置变量 m_crTrans=crTrans; //设置按钮 SetWindowRgn(RgnControl,TRUE); SetWindowPos(NULL,0,0,nButtonWidth,nButtomHeight,SWP_NOMOVE|SWP_NOACTIVATE); //设置区域 m_ButtonRgn.DeleteObject(); m_ButtonRgn.Attach(RgnControl.Detach()); return true; } } return false; }