void CTranVideoTitleBar::ZeroSize() { CRect _Rect(0,0,0,0); m_StaticDevName.MoveWindow(_Rect); m_StaticDevName.ShowWindow(SW_HIDE); m_btnOFF.MoveWindow(0, 0, 0, 0); m_btnOFF.ShowWindow(SW_HIDE); m_btnInf.MoveWindow(0, 0, 0, 0); m_btnInf.ShowWindow(SW_HIDE); m_btnTVWallHandling.MoveWindow(0,0,0,0); m_btnTVWallHandling.ShowWindow(SW_HIDE); m_btnTVWallOK.MoveWindow(0,0,0,0); m_btnTVWallOK.ShowWindow(SW_HIDE); m_btnTVWallVideoBroken.MoveWindow(0,0,0,0); m_btnTVWallVideoBroken.ShowWindow(SW_HIDE); m_btnTurnCruiseStatus.MoveWindow(0,0,0,0); m_btnTurnCruiseStatus.ShowWindow(SW_HIDE); m_btnSingleFrameStatus.MoveWindow(0,0,0,0); m_btnSingleFrameStatus.ShowWindow(SW_HIDE); m_btnAlarmStatus.MoveWindow(0,0,0,0); m_btnAlarmStatus.ShowWindow(SW_HIDE); m_btnRecordStatus.MoveWindow(0,0,0,0); m_btnRecordStatus.ShowWindow(SW_HIDE); m_btnCruiseTrackStatus.MoveWindow(0,0,0,0); m_btnCruiseTrackStatus.ShowWindow(SW_HIDE); m_btnWaterMakr.MoveWindow(0,0,0,0); m_btnWaterMakr.ShowWindow(SW_HIDE); m_btnTvWallReconnect.MoveWindow(0,0,0,0); m_btnTvWallReconnect.ShowWindow(SW_HIDE); }
HRESULT STDMETHODCALLTYPE CTextView::CreateWnd(HWND hWndParent) { CWnd *pWnd = (CWnd*)this; CWnd *wndParent = CWnd::FromHandle(hWndParent); CRect _Rect(0,0, 100, 100); if (pWnd->Create(NULL, ("MFC CEditView "), WS_HSCROLL|WS_VSCROLL|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_VISIBLE|ES_MULTILINE|ES_AUTOHSCROLL, _Rect, wndParent, 0)) { m_pEdit = &GetEditCtrl(); return S_OK; } return S_FALSE; }
bool ESChildAvatar::SetAvatarImage(Image* pImage, bool bRedraw){ if( !pImage || pImage->IsNull() ) return false; if( !m_pImageAvatarBg || m_pImageAvatarBg->IsNull() ) return false; _Size szAvatar(m_pImageAvatarBg->GetWidth(), m_pImageAvatarBg->GetHeight()); Image bmAvatar; if( !bmAvatar.CreateDIBBitmap(32, RGB(0, 0, 0), szAvatar.cx, szAvatar.cy) ) return false; ImageDef hDest = bmAvatar; if( !pImage->ScaleBitmap_Bilinier(szAvatar.cx, szAvatar.cy, _Rect(0, 0, szAvatar.cx, szAvatar.cy), hDest, (pImage->GetBPP() == 32), 255) ){ bmAvatar.Destroy(); return false; } Image imgBg; imgBg.Attach(bmAvatar.Detach()); Image* pImgAvatar = Image::CombineImages(&imgBg, m_pImageAvatarBg, true); if( !pImgAvatar ){ imgBg.Destroy(); return false; } m_imageAvatar.Destroy(); m_imageAvatar.Attach(pImgAvatar->Detach()); m_pImageAvatar = &m_imageAvatar; imgBg.Destroy(); delete pImgAvatar; if( bRedraw ) Redraw(); return true; }
bool ESEnumerableModifyWnd::CreateChildControls(){ _Rect rcClient; GetClientRectMy(rcClient); m_info.m_bgFillMode.SetCurrentValue(_FillMode::FillMode_Color); m_info.m_crFill = RGB(255, 255, 255); _Rect rcList; rcList.left = rcClient.left; rcList.top = rcClient.top; rcList.right = rcClient.right; rcList.bottom = rcClient.bottom - 50; ESChildControlList *pList = new ESChildControlList(); if( !AddChildControl(pList, 1000, rcList, NULL) ){ delete pList; } else{ m_pList = pList; pList->AddEventListener (this, ChildControlEventCode::EventCode_ListRowChange, (ControlEventListener)&ESEnumerableModifyWnd::OnListRowChange); pList->SetBorder (FALSE); pList->AllowColumnSort (false); pList->SetFixedPosition (_Rect(0, 0, 0, 50)); } // }} _Size szButton(100, 34); _Rect rcAddImageButton; rcAddImageButton.left = 5; rcAddImageButton.top = rcList.bottom + 5; rcAddImageButton.right = rcAddImageButton.left + szButton.cx; rcAddImageButton.bottom = rcAddImageButton.top + szButton.cy; ESChildControlImageButton *pAddButton = new ESChildControlImageButton(); if( !AddChildControl(pAddButton, 1001, rcAddImageButton, NULL) ){ delete pAddButton; } else{ m_pAddButton = pAddButton; pAddButton->AddEventListener (this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnAdd); pAddButton->SetFixedPosition (_Rect(rcAddImageButton.left, -1, -1, (rcClient.bottom - rcAddImageButton.bottom))); pAddButton->SetText (_T("Add")); } _Rect rcDeleteImageButton; rcDeleteImageButton.left = rcAddImageButton.right + 5; rcDeleteImageButton.top = rcList.bottom + 5; rcDeleteImageButton.right = rcDeleteImageButton.left + szButton.cx; rcDeleteImageButton.bottom = rcDeleteImageButton.top + szButton.cy; ESChildControlImageButton *pDelButton = new ESChildControlImageButton(); if( !AddChildControl(pDelButton, 1002, rcDeleteImageButton, NULL) ){ delete pDelButton; } else{ m_pDeleteButton = pDelButton; pDelButton->AddEventListener (this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnDelete); pDelButton->SetFixedPosition (_Rect(rcDeleteImageButton.left, -1, -1, (rcClient.bottom - rcDeleteImageButton.bottom))); pDelButton->DisableButton (false); pDelButton->SetText (_T("Delete")); } _Rect rcMoveUpImageButton; rcMoveUpImageButton.left = rcDeleteImageButton.right + 5; rcMoveUpImageButton.top = rcList.bottom + 5; rcMoveUpImageButton.right = rcMoveUpImageButton.left + szButton.cx; rcMoveUpImageButton.bottom = rcMoveUpImageButton.top + szButton.cy; ESChildControlImageButton *pMoveUpButton = new ESChildControlImageButton(); if( !AddChildControl(pMoveUpButton, 1003, rcMoveUpImageButton, NULL) ){ delete pMoveUpButton; } else{ m_pMoveUpButton = pMoveUpButton; pMoveUpButton->AddEventListener (this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnMoveUp); pMoveUpButton->SetFixedPosition (_Rect(rcMoveUpImageButton.left, -1, -1, (rcClient.bottom - rcMoveUpImageButton.bottom))); pMoveUpButton->DisableButton (false); pMoveUpButton->SetText (_T("Move Up")); } _Rect rcMoveDownImageButton; rcMoveDownImageButton.left = rcMoveUpImageButton.right + 5; rcMoveDownImageButton.top = rcList.bottom + 5; rcMoveDownImageButton.right = rcMoveDownImageButton.left + szButton.cx; rcMoveDownImageButton.bottom = rcMoveDownImageButton.top + szButton.cy; ESChildControlImageButton *pMoveDownButton = new ESChildControlImageButton(); if( !AddChildControl(pMoveDownButton, 1004, rcMoveDownImageButton, NULL) ){ delete pMoveDownButton; } else{ m_pMoveDownButton = pMoveDownButton; pMoveDownButton->AddEventListener (this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnMoveDown); pMoveDownButton->SetFixedPosition (_Rect(rcMoveDownImageButton.left, -1, -1, (rcClient.bottom - rcMoveDownImageButton.bottom))); pMoveDownButton->SetText (_T("Move Down")); pMoveDownButton->DisableButton (false); } return true; }
void ESChildAvatar::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){ _Rect rcClient = GetClientRect(); _Rect rcControlDC; rcControlDC.left = (rcClient.left - pRectClient->left) + pRectDC->left; rcControlDC.top = (rcClient.top - pRectClient->top) + pRectDC->top; rcControlDC.right = rcControlDC.left + rcClient.Width(); rcControlDC.bottom = rcControlDC.top + rcClient.Height(); // Draw avatar image. if( m_pImageAvatar && !m_pImageAvatar->IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), m_pImageAvatar, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); // Draw border. if( m_pImageAvatarBorder && !m_pImageAvatarBorder->IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), m_pImageAvatarBorder, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient); }
void ESChildSeatStatus::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){ _Rect rcClient = GetClientRect(); _Rect rcControlDC = ClientRectToDCRect(pRectDC, pRectClient, &rcClient); _Rect rcInvalid = *pRectDC&rcControlDC; _Size szClient(rcClient.Width(), rcClient.Height()); Image* pImageStatus = m_pBgImage; Image* pImageStatusActive = m_pBgActiveImage; Image* pImageStatusCurrent = m_bActive ? pImageStatusActive : pImageStatus; ESChildControlTable* pTable = (ESChildControlTable*)GetParent(); bool bAllowCaching = m_pOwner->IsDesignerMode() ? false : true; if( bAllowCaching ){ HBITMAP hImageCached = pTable->GetCachedSeatStatusImage(m_bActive); BITMAP bmInfo; memset(&bmInfo, 0, sizeof(BITMAP)); if( hImageCached ) GetObject(hImageCached, sizeof(BITMAP), &bmInfo); if( bmInfo.bmWidth != szClient.cx || bmInfo.bmHeight != szClient.cy ){ // Update cached image. pTable->FreeCachedSeatStatusImage(m_bActive); hImageCached = NULL; if( pImageStatusCurrent->ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szClient.cx, szClient.cy, _Rect(0, 0, szClient.cx, szClient.cy), hImageCached, (pImageStatusCurrent->GetBPP() == 32)) ) pTable->UpdateCachedSeatStatusImage(m_bActive, hImageCached); } if( hImageCached ){ // Use cached image. Image imgTemp; imgTemp.Attach(hImageCached); m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_CentredImage, RGB(0, 0, 0), &imgTemp, _Rect(0, 0, 0, 0), false, (int)ScaleMode::ScaleMode_Bilinier); imgTemp.Detach(); } else{ if( pImageStatusCurrent && !pImageStatusCurrent->IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), pImageStatusCurrent, m_rcOmitBorder, false, ScaleMode::ScaleMode_Bilinier); } } else{ if( pImageStatusCurrent && !pImageStatusCurrent->IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), pImageStatusCurrent, m_rcOmitBorder, false, ScaleMode::ScaleMode_Bilinier); } ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient); }
void ESChildSlider::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){ _Rect rcControlDC, rcInvalid; rcControlDC.left = (m_rRect.left - pRectClient->left) + pRectDC->left; rcControlDC.top = (m_rRect.top - pRectClient->top) + pRectDC->top; rcControlDC.right = rcControlDC.left + m_rRect.Width(); rcControlDC.bottom = rcControlDC.top + m_rRect.Height(); float fZoomCX = 1.0f, fZoomCY = 1.0f; if( m_pOwner ) m_pOwner->GetZoom(fZoomCX, fZoomCY); _Rect rcControl = GetClientRect(); CalRects(); // Draw minus sign. {{ if( m_bMouseCaptured && m_rcMinus.PtInRect(m_ptMouseDown) && !m_imageMinusButtonPushed.IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcMinus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imageMinusButtonPushed, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); else m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcMinus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imageMinusButtonNormal, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); // }} // Draw plus sign. {{ if( m_bMouseCaptured && m_rcPlus.PtInRect(m_ptMouseDown) && !m_imagePlusButtonPushed.IsNull() ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcPlus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imagePlusButtonPushed, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); else m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcPlus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imagePlusButtonNormal, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); // }} // Draw slider. {{ if( m_imageSliderBarNotFilled.IsNull() ){ _Size szBarFilled (m_imageSliderBarFilled.GetWidth()*fZoomCX, m_imageSliderBarFilled.GetHeight()*fZoomCY); if( fZoomCX == 1.0f && fZoomCY == 1.0f ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled, m_rcOmitBarFilled); else{ if( !m_imageSliderBarFilled_Scale.IsNull() && m_imageSliderBarFilled_Scale.GetWidth() == szBarFilled.cx && m_imageSliderBarFilled_Scale.GetHeight() == szBarFilled.cy ){ m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale); } else{ ImageDef hDestScaled = NULL; if( m_imageSliderBarFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarFilled.cx, szBarFilled.cy, _Rect(0, 0, szBarFilled.cx, szBarFilled.cy), hDestScaled, true) ){ m_imageSliderBarFilled_Scale.Destroy(); m_imageSliderBarFilled_Scale.Attach(hDestScaled); m_rcOmitBarFilled_Scale = _Rect(m_rcOmitBarFilled.left*fZoomCX, m_rcOmitBarFilled.top*fZoomCY, m_rcOmitBarFilled.right*fZoomCX, m_rcOmitBarFilled.bottom*fZoomCY); m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale); } } } } else{ _Rect rcBarFilled, rcBarEmpty, rcBarFilledDC; if( m_bVerticalMode ){ rcBarEmpty.left = m_rcBar.left; rcBarEmpty.top = m_rcBar.top; rcBarEmpty.right = m_rcBar.right; rcBarEmpty.bottom = m_rcCursor.bottom; rcBarFilled.left = m_rcBar.left; rcBarFilled.top = rcBarEmpty.bottom; rcBarFilled.right = m_rcBar.right; rcBarFilled.bottom = m_rcBar.bottom; } else{ rcBarFilled.left = m_rcBar.left; rcBarFilled.top = m_rcBar.top; rcBarFilled.right = m_rcCursor.left; rcBarFilled.bottom = m_rcBar.bottom; rcBarEmpty.left = rcBarFilled.right; rcBarEmpty.top = m_rcBar.top; rcBarEmpty.right = m_rcBar.right; rcBarEmpty.bottom = m_rcBar.bottom; } // Draw filled bar cliped. {{ _Size szBarFilled (m_imageSliderBarFilled.GetWidth()*fZoomCX, m_imageSliderBarFilled.GetHeight()*fZoomCY); if( fZoomCX == 1.0f && fZoomCY == 1.0f ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled, m_rcOmitBarFilled); else{ if( !m_imageSliderBarFilled_Scale.IsNull() && m_imageSliderBarFilled_Scale.GetWidth() == szBarFilled.cx && m_imageSliderBarFilled_Scale.GetHeight() == szBarFilled.cy ){ m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale); } else{ ImageDef hDestScaled = NULL; if( m_imageSliderBarFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarFilled.cx, szBarFilled.cy, _Rect(0, 0, szBarFilled.cx, szBarFilled.cy), hDestScaled, true) ){ m_imageSliderBarFilled_Scale.Destroy(); m_imageSliderBarFilled_Scale.Attach (hDestScaled); m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale); } } } // }} _Size szBarNotFilled(m_imageSliderBarNotFilled.GetWidth()*fZoomCX, m_imageSliderBarNotFilled.GetHeight()*fZoomCY); if( fZoomCX == 1.0f && fZoomCY == 1.0f ) m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled, m_rcOmitBarNotFilled); else{ if( !m_imageSliderBarNotFilled_Scale.IsNull() && m_imageSliderBarNotFilled_Scale.GetWidth() == szBarNotFilled.cx && m_imageSliderBarNotFilled_Scale.GetHeight() == szBarNotFilled.cy ){ m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled_Scale, m_rcOmitBarNotFilled_Scale); } else{ ImageDef hDestScaled = NULL; if( m_imageSliderBarNotFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarNotFilled.cx, szBarNotFilled.cy, _Rect(0, 0, szBarNotFilled.cx, szBarNotFilled.cy), hDestScaled, true) ){ m_imageSliderBarNotFilled_Scale.Destroy (); m_imageSliderBarNotFilled_Scale.Attach (hDestScaled); m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled_Scale, m_rcOmitBarNotFilled_Scale); } } } } // }} // Draw cursor. m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcCursor, FillMode::FillMode_StretchImage, RGB(0, 0, 0), (m_bCursorCaptured && !m_imageCursorPushed.IsNull()) ? &m_imageCursorPushed : &m_imageCursor, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier); ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient); }
void ESChildSlider::CalRects(){ float fZoomCX = 1.0f, fZoomCY = 1.0f; if( m_pOwner ) m_pOwner->GetZoom(fZoomCX, fZoomCY); _Rect rcControl = GetClientRect(); _Rect rcMinus, rcPlus, rcBar, rcCursor; _Size szMinusImg(0, 0), szPlusImg(0, 0), szBarImg(0, 0), szCursorImg(0, 0); if( !m_imageSliderBarFilled.IsNull() ) szBarImg.SetSize(m_imageSliderBarFilled.GetWidth(), m_imageSliderBarFilled.GetHeight()); if( !m_imagePlusButtonNormal.IsNull() ) szPlusImg.SetSize(m_imagePlusButtonNormal.GetWidth(), m_imagePlusButtonNormal.GetHeight()); if( !m_imageMinusButtonNormal.IsNull() ) szMinusImg.SetSize(m_imageMinusButtonNormal.GetWidth(), m_imageMinusButtonNormal.GetHeight()); if( !m_imageCursor.IsNull() ) szCursorImg.SetSize(m_imageCursor.GetWidth(), m_imageCursor.GetHeight()); m_rcOmitBarFilled_Scale = _Rect(m_rcOmitBarFilled.left*fZoomCX, m_rcOmitBarFilled.top*fZoomCY, m_rcOmitBarFilled.right*fZoomCX, m_rcOmitBarFilled.bottom*fZoomCY); m_rcOmitBarNotFilled_Scale = _Rect(m_rcOmitBarNotFilled.left*fZoomCX, m_rcOmitBarNotFilled.top*fZoomCY, m_rcOmitBarNotFilled.right*fZoomCX, m_rcOmitBarNotFilled.bottom*fZoomCY); // Calculate rects. {{ if( m_bVerticalMode ){ rcPlus.left = rcControl.left; rcPlus.top = rcControl.top; rcPlus.right = rcPlus.left + (szPlusImg.cx*fZoomCX); rcPlus.bottom = rcPlus.top + (szPlusImg.cy*fZoomCY); rcMinus.left = rcControl.left; rcMinus.top = rcControl.bottom - (szMinusImg.cy*fZoomCY); rcMinus.right = rcMinus.left + (szMinusImg.cx*fZoomCX); rcMinus.bottom = rcMinus.top + (szMinusImg.cy*fZoomCY); rcBar.top = rcPlus.bottom + (m_nDistBetweenBarAndButton*fZoomCY); rcBar.left = rcControl.left + ((std::max(szMinusImg.cx, szCursorImg.cx) - szBarImg.cx) / 2)*fZoomCX; rcBar.bottom = rcMinus.top - (m_nDistBetweenBarAndButton*fZoomCY); rcBar.right = rcBar.left + (szBarImg.cx*fZoomCX); } else{ rcMinus.left = rcControl.left; rcMinus.top = rcControl.top; rcMinus.right = rcMinus.left + (szMinusImg.cx*fZoomCX); rcMinus.bottom = rcMinus.top + (szMinusImg.cy*fZoomCY); rcPlus.right = rcControl.right; rcPlus.top = rcControl.top; rcPlus.left = rcPlus.right - (szPlusImg.cx*fZoomCX); rcPlus.bottom = rcMinus.top + (szPlusImg.cy*fZoomCY); rcBar.left = rcMinus.right + (m_nDistBetweenBarAndButton*fZoomCX); rcBar.top = rcControl.top + ((std::max(szMinusImg.cy,szCursorImg.cy) - szBarImg.cy) / 2)*fZoomCY; rcBar.right = rcPlus.left - (m_nDistBetweenBarAndButton*fZoomCX); rcBar.bottom = rcBar.top + (szBarImg.cy*fZoomCY); } CalcCursorRect(rcBar, rcCursor); m_rcBar = rcBar; m_rcMinus = rcMinus; m_rcPlus = rcPlus; m_rcCursor = rcCursor; // }} }
bool ESChildScrollView::Create(int nId, _Rect rRect, MercuryBaseView* pOwner, ESChildControl* pParent){ bool bRet = ESChildControl::Create(nId, rRect, pOwner, pParent); if( bRet ){ m_pVScroll = new ESChildScrollBar(true); m_pHScroll = new ESChildScrollBar(false); if( !m_imageVScrollThumb.IsNull() ) m_pVScroll->m_pImageVScrollThumb = &m_imageVScrollThumb; if( !m_imageVScrollArrowBottomSel.IsNull() ) m_pVScroll->m_pImageVScrollArrowBottomSel = &m_imageVScrollArrowBottomSel; if( !m_imageVScrollArrowBottomNormal.IsNull() ) m_pVScroll->m_pImageVScrollArrowBottomNormal = &m_imageVScrollArrowBottomNormal; if( !m_imageVScrollMiddle.IsNull() ) m_pVScroll->m_pImageVScrollMiddle = &m_imageVScrollMiddle; if( !m_imageVScrollArrowTopSel.IsNull() ) m_pVScroll->m_pImageVScrollArrowTopSel = &m_imageVScrollArrowTopSel; if( !m_imageVScrollArrowTopNormal.IsNull() ) m_pVScroll->m_pImageVScrollArrowTopNormal = &m_imageVScrollArrowTopNormal; if( !m_rcVThumbOmitBorder.IsRectNull() ) m_pVScroll->m_rcVThumbOmitBorder = m_rcVThumbOmitBorder; if( pOwner->AddChildControl(m_pVScroll, MercuryBaseView::GetChildControlIdUnused(m_pOwner), _Rect(0, 0, m_nArrowBtnCY, 0), this) ){ _Rect rcFixedPos; rcFixedPos.left = -1; rcFixedPos.top = m_nBorderWidth + m_nVScrollBarTopOffset; rcFixedPos.right = m_nBorderWidth; rcFixedPos.bottom = m_nBorderWidth; m_pVScroll->SetSerializeFlag(false); m_pVScroll->SetFixedPosition(rcFixedPos); m_pVScroll->SetVisible (false, false); } if( !m_imageHScrollThumb.IsNull() ) m_pHScroll->m_pImageHScrollThumb = &m_imageHScrollThumb; if( !m_imageHScrollArrowRightSel.IsNull() ) m_pHScroll->m_pImageHScrollArrowRightSel = &m_imageHScrollArrowRightSel; if( !m_imageHScrollArrowRightNormal.IsNull() ) m_pHScroll->m_pImageHScrollArrowRightNormal = &m_imageHScrollArrowRightNormal; if( !m_imageHScrollMiddle.IsNull() ) m_pHScroll->m_pImageHScrollMiddle = &m_imageHScrollMiddle; if( !m_imageHScrollArrowLeftSel.IsNull() ) m_pHScroll->m_pImageHScrollArrowLeftSel = &m_imageHScrollArrowLeftSel; if( !m_imageHScrollArrowLeftNormal.IsNull() ) m_pHScroll->m_pImageHScrollArrowLeftNormal = &m_imageHScrollArrowLeftNormal; if( !m_rcHThumbOmitBorder.IsRectNull() ) m_pHScroll->m_rcHThumbOmitBorder = &m_rcHThumbOmitBorder; if( pOwner->AddChildControl(m_pHScroll, MercuryBaseView::GetChildControlIdUnused(m_pOwner), _Rect(0, 0, 0, m_nArrowBtnCX), this) ){ _Rect rcFixedPos; rcFixedPos.left = m_nBorderWidth; rcFixedPos.top = -1; rcFixedPos.right = m_nBorderWidth; rcFixedPos.bottom = m_nBorderWidth; m_pHScroll->SetSerializeFlag(false); m_pHScroll->SetFixedPosition(rcFixedPos); m_pHScroll->SetVisible (false, false); } AdjustScrollBarPos(false); } return bRet; }
// 回転・スケーリング・アルファオプション付き絵画(スプライトを使用) void CMglImage::DrawEx( float fScaleX, float fScaleY, float fRotationCenterX, float fRotationCenterY, float fAngle, float x, float y, RECT *srcRect, D3DCOLOR color ) // float x, float y, RECT *srcRect, D3DCOLOR color, DWORD dwAlphaOption ) { CreateCheck(); // Createチェック // srcRectにNULLを指定された場合はフルで絵画 RECT _srcRect; if ( srcRect == NULL ) { srcRect = &_srcRect; _Rect( 0, 0, m_nBmpSizeX, m_nBmpSizeY, srcRect ); } // 中心基点絵画機能 if ( m_bCenterDraw == TRUE ) { int nSizeX = srcRect->right - srcRect->left; int nSizeY = srcRect->bottom - srcRect->top; x -= (nSizeX/2) * fScaleX; y -= (nSizeY/2) * fScaleY; } // x, yをD3DXVECTOR2構造体に格納 D3DXVECTOR2 vctPos; vctPos.x = x; vctPos.y = y; // スケール D3DXVECTOR2 vctScale; vctScale.x = fScaleX; vctScale.y = fScaleY; // 回転の中心 D3DXVECTOR2 vctRtCenter; vctRtCenter.x = (srcRect->right - srcRect->left) * fRotationCenterX * fScaleX; vctRtCenter.y = (srcRect->bottom - srcRect->top) * fRotationCenterY * fScaleY; /* スプライトはアルファオプション効かないっぽい // アルファオプション DWORD dwAlphaOptionBkup=0; if ( dwAlphaOption != MGL_ALPHA_OPT_NOCHANGE ) { // 戻す時のためにバックアップを取っておく dwAlphaOptionBkup = m_myudg->GetAlphaMode(); m_myudg->SetAlphaMode( dwAlphaOption ); }*/ // 角度からRadianに。更に左回転になっているので右回転に float fRad = AngleToRad(-fAngle); // 絵画 MyuAssert( m_pSprite->Draw( m_pTexture, srcRect, &vctScale, &vctRtCenter, fRad, &vctPos, color ), D3D_OK, "CMglImage::Draw() m_pSprite->Draw()に失敗" ); /* スプライトはアルファオプション効かないっぽい // アルファオプションを元に戻す if ( dwAlphaOption != MGL_ALPHA_OPT_NOCHANGE ) { m_myudg->SetAlphaMode( dwAlphaOptionBkup ); }*/ }