좋아요 특정 매개 변수가 다른 매개 변수보다 클 때 비트 맵을 변경할 수있는 문제가 있습니다. 나는 이것에 방대한 초짜 다. 그리고 나의 코딩은 크지 않다 (전혀). 나는이입니다 텍스트로 제한 (매개 변수)와 디스플레이 읽는 코드를 가지고 : 일반적으로 표시됩니다한계에 도달했을 때 색상을 변경하기위한 비트 맵 얻기
CFont* def_font = argDC->SelectObject(&m_Font);
CString csText;
int StartPos = WindowRect.Width()/5;
CRect TextRect(StartPos, WindowRect.top + 5, StartPos + 100, WindowRect.top + 35);
csText.Format(_T("%.2ft"), argSystemDataPtr->GetMaxSWL());
int32_t iSWLDigits = csText.GetLength();
if (iSWLDigits < m_SWLDigitsNum)
{
m_RedPanelBitmap.LoadBitmapW(IDB_BITMAP_PANEL_RED);
//argDC->FillSolidRect(TextRect, RGB(255, 255, 255));
}
m_SWLDigitsNum = iSWLDigits;
argDC->DrawText(csText, TextRect, DT_LEFT);
비트 맵을 그린하지만 한계가 위의 다음처럼 위반 한 경우 내가 변경 비트 맵을 원하는 빨간색으로. 여기에 내가 그린 것들이 있습니다.
CRect PanelRect1, PanelRect2;
CRect PanelsRect(WindowRect);
const int BarHeight = 30;
PanelsRect.OffsetRect(0,m_bShowTitleBar?BarHeight:-BarHeight);
PanelsRect.DeflateRect(0,m_bShowTitleBar?BarHeight*-1:BarHeight);
m_GreenPanelBitmap.Detach();
m_GreenPanelBitmap.LoadBitmapW(IDB_BITMAP_PANEL_GREEN);
CBitmap* pOld = memDC.SelectObject(&m_GreenPanelBitmap);
BITMAP bits;
m_GreenPanelBitmap.GetObject(sizeof(BITMAP),&bits);
PanelRect1.SetRect(0,PanelsRect.top, PanelsRect.right /2 , PanelsRect.Height()/3);
PanelRect2.SetRect(0,PanelsRect.top+PanelRect1.Height(), PanelsRect.right /2 ,(PanelsRect.Height()/3) + PanelRect1.Height());
//Now draw the Panels
if (pOld != NULL)
{
argDC->StretchBlt(PanelRect1.left ,PanelRect1.top,PanelRect1.Width(),PanelRect1.Height(),
&memDC,0,0,bits.bmWidth-1, bits.bmHeight-1, SRCCOPY);
argDC->StretchBlt(PanelRect2.left,PanelRect2.top,PanelRect2.Width(),PanelRect2.Height(),
&memDC,0,0,bits.bmWidth-1, bits.bmHeight-1, SRCCOPY);
memDC.SelectObject(pOld);
내가 아마 거기에 간단한 대답은하지만, 내가 그 위에 내 머리를 긁적했습니다과 m_GreenPanelBitmap 변경 방법에 다른 곳에서도 답을 찾을 수가 없어 이해, 어떤 도움을 매우 감사하게 될 것입니다 이 문이 true 일 때 m_RedPanelBitmap에 전달됩니다.
`if (iSWLDigits < m_SWLDigitsNum).`
질문은? –
비트 맵을 다른 비트 맵으로 변경하려면 어떻게해야합니까? if (iSWLDigits
bigbaz34