void Dragonfly::RedrawPanel_SensorInfo (SURFHANDLE surf) { bool engaged = false; OBJHANDLE hObj = GetDockStatus (GetDockHandle (0)); HDC hDC = oapiGetDC (surf); // SelectObject (hDC, g_Param.font[1]); SetTextColor (hDC, RGB(0,255,0)); SetBkMode (hDC, TRANSPARENT); if (!sensormode) { TextOut (hDC, 0, 0, "LOCAL", 5); engaged = (hObj != NULL); } else { TextOut (hDC, 0, 0, "REMOTE", 6); if (remoteport >= 0) { char cbuf[20]; sprintf (cbuf, "DOCK %d", remoteport+1); TextOut (hDC, 0, 10, cbuf, strlen(cbuf)); engaged = (GetDockStatus (oapiGetDockHandle (hObj, remoteport)) != NULL); } else TextOut (hDC, 0, 10, "NO DATA", 7); } if (engaged) { SetTextColor (hDC, 0); SetBkColor (hDC, RGB(255,255,0)); SetBkMode (hDC, OPAQUE); TextOut (hDC, 50, 0, "ENG", 3); } oapiReleaseDC (surf, hDC); };
void Dragonfly::RedrawPanel_CGIndicator (SURFHANDLE surf) { char cbuf[20]; HDC hDC = oapiGetDC (surf); // SelectObject (hDC, g_Param.font[1]); SetTextColor (hDC, RGB(0,255,0)); SetBkMode (hDC, TRANSPARENT); sprintf (cbuf, "%0.1f m", cgofs); TextOut (hDC, 30, 0, cbuf, strlen (cbuf)); int loc = 4+min ((int)(cgofs*3.784), 74); // SelectObject (hDC, g_Param.pen[0]); MoveToEx (hDC, loc, 15, NULL); LineTo (hDC, loc-3, 22); LineTo (hDC, loc+3, 22); LineTo (hDC, loc, 15); oapiReleaseDC (surf, hDC); };
void MFDWindow::RepaintDisplay (HWND hWnd) { PAINTSTRUCT ps; HDC hDCtgt = BeginPaint (hWnd, &ps); SURFHANDLE surf = GetDisplaySurface(); if (surf) { HDC hDCsrc = oapiGetDC (surf); BitBlt (hDCtgt, 0, 0, DW, DH, hDCsrc, 0, 0, SRCCOPY); oapiReleaseDC (surf, hDCsrc); } else { SelectObject (hDCtgt, GetStockObject (BLACK_BRUSH)); Rectangle (hDCtgt, 0, 0, DW, DH); } EndPaint (hWnd, &ps); }
void Panel::MakeYourBackground() { surf=oapiCreateSurface(Wdth,Hght); hDC=oapiGetDC(surf); hDC2=CreateCompatibleDC(hDC); hDC3=CreateCompatibleDC(hDC); hBitmap=CreateCompatibleBitmap(hDC,Wdth,Hght); HBITMAP hBitmapOld=(HBITMAP)SelectObject(hDC2,hBitmap); DeleteObject(hBitmapOld); SelectObject(hDC2,hBRUSH_Background); Rectangle(hDC2,0,0,Wdth,Hght); Panel::NowPutScrews(); Panel::NowPutTextOnBackground(); Panel::NowPutCText(); Panel::NowPutBorders(); DeleteDC(hDC2); oapiReleaseDC(surf,hDC); oapiDestroySurface(surf); }