void CShowGrafView::mouseMoveMarkInterval(UINT nFlags, const CPoint &point) { if(m_dragging) { if(nFlags && MK_LBUTTON) { const CRect cr = getClientRect(this, IDC_SYSTEMPANEL); const CRect newRect = CRect(m_mouseDownPoint.x, cr.bottom, point.x, cr.top); CClientDC(GetDlgItem(IDC_SYSTEMPANEL)).DrawDragRect(&newRect, CSize(1,1), &m_dragRect, CSize(1,1)); m_dragRect = newRect; } else { CClientDC(GetDlgItem(IDC_SYSTEMPANEL)).DrawDragRect(&m_dragRect, CSize(1,1), NULL, CSize(1,1)); m_dragging = false; ClipCursor(NULL); } } }
void CColoredStatic::setBKColor(COLORREF color) { m_bkColor = color; m_bkColorSet = true; if(IsWindow(m_hWnd)) { repaint(CClientDC(this)); } }
void CColoredStatic::setTextColor(COLORREF color) { if(color != m_textColor) { m_textColor = color; if(IsWindow(m_hWnd)) { repaint(CClientDC(this)); } } }
void CShowGrafView::lbuttonDownMarkInterval(UINT nFlags, const CPoint &point) { m_mouseDownPoint = point; m_dragging = true; CRect cr = getClientRect(this, IDC_SYSTEMPANEL); m_dragRect = CRect(m_mouseDownPoint.x, cr.bottom, m_mouseDownPoint.x, cr.top); ClientToScreen(&cr); ClipCursor(&cr); CClientDC(GetDlgItem(IDC_SYSTEMPANEL)).DrawDragRect(&m_dragRect, CSize(1,1), NULL, CSize(1,1)); }
HBITMAP CXCCRA2RadarCustomizerDlg::create_bitmap(Cvirtual_image image) { image.swap_rb(); BITMAPINFOHEADER header; ZeroMemory(&header, sizeof(BITMAPINFOHEADER)); header.biSize = sizeof(BITMAPINFOHEADER); header.biWidth = image.cx(); header.biHeight = -image.cy(); header.biPlanes = 1; header.biBitCount = image.cb_pixel() << 3; header.biCompression = BI_RGB; return CreateDIBitmap(CClientDC(NULL), &header, CBM_INIT, image.image(), reinterpret_cast<BITMAPINFO*>(&header), DIB_RGB_COLORS); }
bool CDLGMap::IplImage2Bmp(IplImage *pImage,HBITMAP &hBitmap) { if( pImage && pImage->depth == IPL_DEPTH_8U ) { uchar buffer[sizeof(BITMAPINFOHEADER) + 1024]; BITMAPINFO* bmi = (BITMAPINFO*)buffer; int bmp_w = pImage->width, bmp_h = pImage->height; int width=bmp_w; int height=bmp_h; int bpp=pImage ? (pImage->depth & 255)*pImage->nChannels : 0; int origin=pImage->origin; assert( bmi && width >= 0 && height >= 0 && (bpp == 8 || bpp == 24 || bpp == 32)); BITMAPINFOHEADER* bmih = &(bmi->bmiHeader); memset( bmih, 0, sizeof(*bmih)); bmih->biSize = sizeof(BITMAPINFOHEADER); bmih->biWidth = width; bmih->biHeight = origin ? abs(height) : -abs(height); bmih->biPlanes = 1; bmih->biBitCount = (unsigned short)bpp; bmih->biCompression = BI_RGB; if( bpp == 8 ) { RGBQUAD* palette = bmi->bmiColors; int i; for( i = 0; i < 256; i++ ) { palette[i].rgbBlue = palette[i].rgbGreen = palette[i].rgbRed = (BYTE)i; palette[i].rgbReserved = 0; } } hBitmap=CreateDIBitmap(CClientDC(NULL),bmih,CBM_INIT,pImage->imageData,bmi,DIB_RGB_COLORS); return true; } return false; }
LRESULT CALLBACK CLanguageSelector::LangSelectProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HBITMAP hbmpBackgroundTop = NULL; static HFONT hTextFont = NULL; static CLanguageSelector * lngClass; switch (uMsg) { case WM_INITDIALOG: { lngClass = (CLanguageSelector *)lParam; LanguageList LangList = g_Lang->GetLangList(); if (LangList.size() == 0) { EndDialog(hDlg, 0); } for (LanguageList::iterator Language = LangList.begin(); Language != LangList.end(); Language++) { int index = SendMessageW(GetDlgItem(hDlg, IDC_LANG_SEL), CB_ADDSTRING, 0, (WPARAM)stdstr(Language->LanguageName).ToUTF16().c_str()); if (_stricmp(Language->LanguageName.c_str(), "English") == 0) { SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_SETCURSEL, index, 0); } } int Index = SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_GETCURSEL, 0, 0); if (Index < 0) { SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_SETCURSEL, 0, 0); } //Get Windows DPI Scale float DPIScale = CClientDC(hDlg).GetDeviceCaps(LOGPIXELSX) / 96.0f; // Use the size of the image hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), DPIScale <= 1.0f ? MAKEINTRESOURCE(IDB_ABOUT_LOGO) : MAKEINTRESOURCE(IDB_ABOUT_LOGO_HDPI)); BITMAP bmTL; GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL); hTextFont = ::CreateFont(18, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial"); SendDlgItemMessage(hDlg, IDC_SELECT_LANG, WM_SETFONT, (WPARAM)hTextFont, TRUE); } break; case WM_CTLCOLORSTATIC: { HDC hdcStatic = (HDC)wParam; SetTextColor(hdcStatic, RGB(0, 0, 0)); SetBkMode(hdcStatic, TRANSPARENT); return (LONG)(LRESULT)((HBRUSH)GetStockObject(NULL_BRUSH)); } break; case WM_ERASEBKGND: { HPEN outline; HBRUSH fill; RECT rect; outline = CreatePen(PS_SOLID, 1, 0x00FFFFFF); fill = CreateSolidBrush(0x00FFFFFF); SelectObject((HDC)wParam, outline); SelectObject((HDC)wParam, fill); GetClientRect(hDlg, &rect); Rectangle((HDC)wParam, rect.left, rect.top, rect.right, rect.bottom); } break; case WM_PAINT: { PAINTSTRUCT ps; if (BeginPaint(hDlg, &ps)) { RECT rcClient; GetClientRect(hDlg, &rcClient); BITMAP bmTL_top; GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL_top); HDC memdc = CreateCompatibleDC(ps.hdc); HGDIOBJ save = SelectObject(memdc, hbmpBackgroundTop); SetStretchBltMode(ps.hdc, HALFTONE); StretchBlt(ps.hdc, 0, 0, rcClient.right, (int)(bmTL_top.bmHeight * rcClient.right / bmTL_top.bmWidth), memdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, SRCCOPY); SelectObject(memdc, save); DeleteDC(memdc); EndPaint(hDlg, &ps); } } break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: if (hbmpBackgroundTop) { DeleteObject(hbmpBackgroundTop); } if (hTextFont) { ::DeleteObject(hTextFont); } { int Index = SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_GETCURSEL, 0, 0); if (Index >= 0) { wchar_t String[255]; SendMessageW(GetDlgItem(hDlg, IDC_LANG_SEL), CB_GETLBTEXT, Index, (LPARAM)String); g_Lang->SetLanguage(stdstr().FromUTF16(String).c_str()); } } EndDialog(hDlg, 0); break; } default: return FALSE; } return TRUE; }
bool IsSansSerifFontAvailable() { static bool available = IsFontAvailable(CClientDC(NULL), SANS_SERIF_FONT_NAME); return available; }
bool IsArialFontAvailable() { static bool available = IsFontAvailable(CClientDC(NULL), ARIAL_FONT_NAME); return available; }
//------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ bool IsTahomaFontAvailable() { static bool available = IsFontAvailable(CClientDC(NULL), TAHOMA_FONT_NAME); return available; }
void CShowGrafView::lbuttonUpMarkInterval(UINT nFlags, const CPoint &point) { CClientDC(GetDlgItem(IDC_SYSTEMPANEL)).DrawDragRect(&m_dragRect, CSize(1,1), NULL, CSize(1,1)); m_dragging = false; ClipCursor(NULL); getMainFrame()->PostMessage(ID_MSG_SEARCHINTERVAL, m_dragRect.left,m_dragRect.right); }
void AnimatedImage::flushPr(const CPoint &p, PixRect *src, double scaleFactor) const { flushPr(CClientDC(m_parent), p, src, scaleFactor); }