void GridDisplay::SetDefault() { SetTextAlign(); SetHorzMargin(); SetVertMargin(); SetTheme(); ReverseSortIcon(false); }
//------------------------------------------------------------------ void toolBitmap() { int i; TBADDBITMAP a; HDC dc, wdc; HGDIOBJ oldBmp, oldF; TCHAR c; HBRUSH br; RECT rc; HBITMAP b; LOGFONT font; const int Nbut1=35, Nbut=Nbut1+Msymbol+1; wdc=GetDC(toolbar); dc=CreateCompatibleDC(wdc); b=CreateCompatibleBitmap(wdc, Nbut*16, 15); ReleaseDC(toolbar, wdc); oldBmp=SelectObject(dc, b); rc.left=0; rc.right=16*Nbut1; rc.bottom=15; rc.top=0; FillRect(dc, &rc, GetSysColorBrush(COLOR_BTNFACE)); SetBkMode(dc, TRANSPARENT); SetTextAlign(dc, TA_CENTER); memset(&font, 0, sizeof(LOGFONT)); font.lfHeight=-15; _tcscpy(font.lfFaceName, _T("Tahoma")); oldF=SelectObject(dc, CreateFontIndirect(&font)); for(i=0; i<Nbut1; i++){ c=num2char(i); TextOut(dc, 16*i+8, -1, &c, 1); } DeleteObject(SelectObject(dc, oldF)); for(; i<Nbut; i++){ rc.left=i*16; rc.right=rc.left+16; FillRect(dc, &rc, br=CreateSolidBrush(colors[i-Nbut1])); DeleteObject(br); } SelectObject(dc, oldBmp); DeleteDC(dc); if(toolBmp){ TBREPLACEBITMAP rb; rb.hInstOld=0; rb.nIDOld=(UINT_PTR)toolBmp; rb.hInstNew=0; rb.nIDNew=(UINT_PTR)b; rb.nButtons=Nbut; SendMessage(toolbar, TB_REPLACEBITMAP, 0, (LPARAM)&rb); DeleteObject(toolBmp); } else{ a.hInst=(HINSTANCE)0; a.nID=(UINT_PTR)b; toolNumIndex= SendMessage(toolbar, TB_ADDBITMAP, Nbut, (LPARAM)&a); } toolBmp=b; InvalidateRect(toolbar, 0, TRUE); }
static value gr_reset(void) { RECT rc; int screenx,screeny; screenx = GetSystemMetrics(SM_CXSCREEN); screeny = GetSystemMetrics(SM_CYSCREEN); GetClientRect(grwindow.hwnd,&rc); grwindow.gc = GetDC(grwindow.hwnd); grwindow.width = rc.right; grwindow.height = rc.bottom; if (grwindow.gcBitmap == (HDC)0) { grwindow.hBitmap = CreateCompatibleBitmap(grwindow.gc,screenx, screeny); grwindow.gcBitmap = CreateCompatibleDC(grwindow.gc); grwindow.tempDC = CreateCompatibleDC(grwindow.gc); SelectObject(grwindow.gcBitmap,grwindow.hBitmap); SetMapMode(grwindow.gcBitmap,MM_TEXT); MoveToEx(grwindow.gcBitmap,0,grwindow.height-1,0); BitBlt(grwindow.gcBitmap,0,0,screenx,screeny, grwindow.gcBitmap,0,0,WHITENESS); grwindow.CurrentFontSize = 15; grwindow.CurrentFont = CreationFont("Courier"); } grwindow.CurrentColor = GetSysColor(COLOR_WINDOWTEXT); grwindow.grx = 0; grwindow.gry = 0; grwindow.CurrentPen = SelectObject(grwindow.gc, GetStockObject(WHITE_PEN)); SelectObject(grwindow.gc,grwindow.CurrentPen); SelectObject(grwindow.gcBitmap,grwindow.CurrentPen); grwindow.CurrentBrush = SelectObject(grwindow.gc, GetStockObject(WHITE_BRUSH)); SelectObject(grwindow.gc,grwindow.CurrentBrush); SelectObject(grwindow.gcBitmap,grwindow.CurrentBrush); caml_gr_set_color(Val_long(0)); SelectObject(grwindow.gc,grwindow.CurrentFont); SelectObject(grwindow.gcBitmap,grwindow.CurrentFont); grdisplay_mode = grremember_mode = 1; MoveToEx(grwindow.gc,0,grwindow.height-1,0); MoveToEx(grwindow.gcBitmap,0,grwindow.height-1,0); SetTextAlign(grwindow.gcBitmap,TA_BOTTOM); SetTextAlign(grwindow.gc,TA_BOTTOM); return Val_unit; }
void DisplaySpaceyMsg(void) { UINT fMode; HDC dc; dc = Screen->GetBack()->GetDC(); fMode = GetTextAlign(dc); SetTextAlign(dc, TA_CENTER | VTA_CENTER); Screen->GetBack()->TextXY(320, 2, GreenTxt, "SPACEY VADERS"); Screen->GetBack()->TextXY(320, 20, GreenTxt, "by Paul Lord '97"); SetTextAlign(dc, fMode); Screen->GetBack()->ReleaseDC(); }
void PrintText( HWND hwnd,int cxChar,int cyChar,int cxCaps ) { HDC hdc; PAINTSTRUCT ps; SCROLLINFO si; int iVertPos,iHorzPos,iPaintBeg,iPaintEnd; int x,y; TCHAR szBuffer[10]; hdc = BeginPaint(hwnd,&ps); si.cbSize = sizeof(si); si.fMask = SIF_POS; GetScrollInfo(hwnd,SB_VERT,&si); iVertPos = si.nPos; GetScrollInfo(hwnd,SB_HORZ,&si); iHorzPos = si.nPos; iPaintBeg = max(0,iVertPos + ps.rcPaint.top / cyChar); iPaintEnd = min(NUMLINES - 1, iVertPos + ps.rcPaint.bottom / cyChar); for (int i = iPaintBeg ; i <= iPaintEnd ; i++) { x = cxChar * (1 - iHorzPos) ; y = cyChar * (i - iVertPos) ; TextOut (hdc, x, y,sysmetrics[i].szLabel, lstrlen (sysmetrics[i].szLabel)) ; TextOut (hdc, x + 22 * cxCaps, y,sysmetrics[i].szDesc, lstrlen (sysmetrics[i].szDesc)) ; SetTextAlign (hdc, TA_RIGHT | TA_TOP) ; TextOut (hdc, x + 22 * cxCaps + 40 * cxChar, y, szBuffer, wsprintf (szBuffer, TEXT ("%5d"), GetSystemMetrics (sysmetrics[i].iIndex))) ; SetTextAlign (hdc, TA_LEFT | TA_TOP) ; } EndPaint(hwnd,&ps); }
uint32_t *plTextGenerator::IAllocateOSSurface( uint16_t width, uint16_t height ) { #if HS_BUILD_FOR_WIN32 BITMAPINFO bmi; // Create a new DC and bitmap that we can draw characters to memset( &bmi.bmiHeader, 0, sizeof( BITMAPINFOHEADER ) ); bmi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); bmi.bmiHeader.biWidth = width; bmi.bmiHeader.biHeight = -(int)height; bmi.bmiHeader.biPlanes = 1; bmi.bmiHeader.biCompression = BI_RGB; bmi.bmiHeader.biBitCount = 32; fWinRGBDC = CreateCompatibleDC( nil ); fWinRGBBitmap = CreateDIBSection( fWinRGBDC, &bmi, DIB_RGB_COLORS, (void **)&fWinRGBBits, nil, 0 ); SetMapMode( fWinRGBDC, MM_TEXT ); SetBkMode( fWinRGBDC, TRANSPARENT ); SetTextAlign( fWinRGBDC, TA_TOP | TA_LEFT ); SelectObject( fWinRGBDC, fWinRGBBitmap ); // Now create a second DC/bitmap combo, this one for writing alpha values to memset( &bmi.bmiHeader, 0, sizeof( BITMAPINFOHEADER ) ); bmi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); bmi.bmiHeader.biWidth = width; bmi.bmiHeader.biHeight = -(int)height; bmi.bmiHeader.biPlanes = 1; bmi.bmiHeader.biCompression = BI_RGB; bmi.bmiHeader.biBitCount = 8; fWinAlphaDC = CreateCompatibleDC( nil ); fWinAlphaBitmap = CreateDIBSection( fWinAlphaDC, &bmi, DIB_RGB_COLORS, (void **)&fWinAlphaBits, nil, 0 ); SetMapMode( fWinAlphaDC, MM_TEXT ); SetBkMode( fWinAlphaDC, TRANSPARENT ); SetTextAlign( fWinAlphaDC, TA_TOP | TA_LEFT ); SelectObject( fWinAlphaDC, fWinAlphaBitmap ); return (uint32_t *)fWinRGBBits; #endif }
HRESULT CJoystickCtl::OnDraw(ATL_DRAWINFO& di) { RECT& rc = *(RECT*) di.prcBounds; Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom); SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE); LPCTSTR pszText = _T("JavaScript Joystick"); TextOut(di.hdcDraw, (rc.left + rc.right) / 2, (rc.top + rc.bottom) / 2, pszText, lstrlen(pszText)); return S_OK; }
void Panel::NowPutTextOnBackground() { SetBkMode(hDC2,TRANSPARENT); // SetTextColor(hDC2,RGB(0,147,221)); SetTextColor(hDC2,RGB(255,100,100)); SetTextAlign(hDC2,TA_CENTER); SelectObject(hDC2,hFNT_Panel); for (int i=0;i<text_num;i++) TextOut(hDC2,Text_list[i].x,Text_list[i].y,Text_list[i].text, sizeof(char)*strlen(Text_list[i].text)); }
void DrawRings( HWND hwnd, HDC hdc ) { double Angle, dAngle, Radius; int i, x, y; HFONT hFont, hFontOld; if( lstrlen(szString) == 0 ) return; Radius = cxDC / 4; dAngle = 360.0 / (double)lstrlen(szString); Ellipse( hdc, xDC + cxDC/2-(int)Radius, yDC + cyDC/2-(int)Radius, xDC + cxDC/2+(int)Radius, yDC + cyDC/2+(int)Radius ); Angle = 0.0; for( i = 0; i < lstrlen(szString); i++, Angle += dAngle ) { lf.lfEscapement = lf.lfOrientation = (int)(10.0*Angle); hFont = CreateFontIndirect( &lf ); if( !hFont ) { dprintf( "Couldn't create font for Angle = %d", (int)Angle ); continue; } hFontOld = SelectObject( hdc, hFont ); SetTextAlign( hdc, wTextAlign ); SetBkMode( hdc, iBkMode ); SetBkColor( hdc, dwRGBBackground ); SetTextColor( hdc, dwRGBText ); x = xDC + cxDC/2 + (int)(Radius * sin( TWOPI * Angle / 360.0 ) ); y = yDC + cyDC/2 + (int)(Radius * cos( TWOPI * Angle / 360.0 ) ); // dprintf( " x, y = %d, %d", x, y ); TextOut( hdc, x, y, &szString[i], 1 ); MoveToEx( hdc, x-cxDC/150, y ,0); LineTo( hdc, x+cxDC/150, y ); MoveToEx( hdc, x, y-cxDC/150 ,0); LineTo( hdc, x, y+cxDC/150 ); SelectObject( hdc, hFontOld ); DeleteObject( hFont ); } lf.lfEscapement = lf.lfOrientation = 0; }
VOID vJustify3(HDC hdc, int x, int y, char * psz1, char * psz2, char * psz3, ULONG cxLen) { ULONG cBrk = cBreak(psz1) + cBreak(psz2) + cBreak(psz3); ULONG cx = cxSize(hdc,psz1) + cxSize(hdc,psz2) + cxSize(hdc,psz3); BOOL bOk; POINT pt; MoveToEx(hdc,x,y,&pt); SetTextAlign(hdc, TA_LEFT | TA_TOP | TA_UPDATECP); // DbgPrint("cBrk = %ld, cxSize = %ld\n", cBrk, cx); bOk = SetTextJustification(hdc, (int)(cxLen - cx), cBrk); if(!bOk) vDoPause(0); bOk = TextOut(hdc, 0, 0, psz1, strlen(psz1)); if(!bOk) vDoPause(0); SetBkColor(hdc, RGB(0,0,255)); bOk = TextOut(hdc, 0, 0, psz2, strlen(psz2)); if(!bOk) vDoPause(0); SetBkColor(hdc, RGB(255,0,0)); bOk = TextOut(hdc, 0, 0, psz3, strlen(psz3)); if(!bOk) vDoPause(0); bOk = SetTextJustification(hdc,0,0); if(!bOk) vDoPause(0); SetTextAlign(hdc, TA_LEFT | TA_TOP | TA_NOUPDATECP); SetBkColor(hdc, RGB(0,255,0)); }
virtual BOOL on_draw (HELEMENT he, UINT draw_type, HDC hdc, const RECT& rc ) { if( draw_type != DRAW_CONTENT ) return FALSE; /*do default draw*/ dom::element el = he; UINT pta = GetTextAlign(hdc); SetTextAlign(hdc, TA_LEFT | TA_TOP |TA_NOUPDATECP); #ifdef _WIN32_WCE CString fileName(el.text()); CString dottedFileName; FormatFileName(hdc, fileName, dottedFileName, rc.right - rc.left); DrawTextW(hdc, dottedFileName, -1, const_cast<RECT*>(&rc), DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_NOPREFIX | DT_NOCLIP); #else DrawTextW(hdc, el.text(), -1, const_cast<RECT*>(&rc), DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_PATH_ELLIPSIS | DT_NOPREFIX); #endif SetTextAlign(hdc, pta); return TRUE; /*skip default draw as we did it already*/ }
// the initialization method void TSRGuiFileBrowser::Initialize() { m_Maxcharacters = 10; m_eType = TWISTER_GUI_COMPONENT_FILEBROWSER; m_bClickable = true; SetTextAlign( GUI_ALIGN_TOPLEFT ); SetFilter( "*.*" ); m_FolderColor.Assign( 1.0f, 0.0f, 0.0f ); m_FileColor.Assign( 0.0f, 0.0f, 1.0f ); m_HotColor.Assign( 0.5f, 0.5f, 0.5f ); }
VOID vJustify2(HDC hdc, int x, int y, char * psz1, char * psz2, ULONG cxLen) { ULONG cBrk = cBreak(psz1) + cBreak(psz2); ULONG cx = cxSize(hdc,psz1) + cxSize(hdc,psz2); BOOL bOk; POINT pt; MoveToEx(hdc,x,y,&pt); SetTextAlign(hdc, TA_LEFT | TA_TOP | TA_UPDATECP); // DbgPrint("cBrk = %ld, cxSize = %ld\n", cBrk, cx); bOk = SetTextJustification(hdc, (int)(cxLen - cx), cBrk); if(!bOk) vDoPause(0); bOk = TextOut(hdc, 0, 0, psz1, strlen(psz1)); if(!bOk) vDoPause(0); // change bk color to observe which part of the string is written // by the second call SetBkColor(hdc, RGB(0,0,255)); bOk = TextOut(hdc, 0, 0, psz2, strlen(psz2)); if(!bOk) vDoPause(0); bOk = SetTextJustification(hdc,0,0); if(!bOk) vDoPause(0); SetTextAlign(hdc, TA_LEFT | TA_TOP | TA_NOUPDATECP); SetBkColor(hdc, RGB(0,255,0)); // restore old color }
void CtrlDisAsmView::drawArguments(HDC hdc, const DisassemblyLineInfo &line, int x, int y, int textColor, const std::set<std::string> ¤tArguments) { if (line.params.empty()) { return; } // Don't highlight the selected lines. if (isInInterval(selectRangeStart, selectRangeEnd - selectRangeStart, line.info.opcodeAddress)) { TextOutA(hdc, x, y, line.params.c_str(), (int)line.params.size()); return; } int highlightedColor = 0xaabb00; if (textColor == 0x0000ff) { highlightedColor = 0xaabb77; } UINT prevAlign = SetTextAlign(hdc, TA_UPDATECP); MoveToEx(hdc, x, y, NULL); size_t p = 0, nextp = line.params.find(','); while (nextp != line.params.npos) { const std::string arg = line.params.substr(p, nextp - p); if (currentArguments.find(arg) != currentArguments.end() && textColor != 0xffffff) { SetTextColor(hdc, highlightedColor); } TextOutA(hdc, 0, 0, arg.c_str(), (int)arg.size()); SetTextColor(hdc,textColor); p = nextp + 1; nextp = line.params.find(',', p); TextOutA(hdc, 0, 0, ",", 1); } if (p < line.params.size()) { const std::string arg = line.params.substr(p); if (currentArguments.find(arg) != currentArguments.end() && textColor != 0xffffff) { SetTextColor(hdc, highlightedColor); } TextOutA(hdc, 0, 0, arg.c_str(), (int)arg.size()); SetTextColor(hdc,textColor); } SetTextAlign(hdc, prevAlign); }
void AddTextToPage ( LPSTR pText, int x, int y, int centered ) { // Dimension of print area int cWidthPels = GetDeviceCaps(pd.hDC, HORZRES); int cHeightPels = GetDeviceCaps(pd.hDC, VERTRES); // Adjustment for center switch ( centered ) { case 0 : SetTextAlign ( pd.hDC, TA_LEFT ); break; case 1 : SetTextAlign ( pd.hDC, TA_CENTER ); break; case 2 : SetTextAlign ( pd.hDC, TA_RIGHT ); break; } // Print to scaled location double dx = (x/100.0)*cWidthPels; double dy = (y/100.0)*cHeightPels; // put text to device context TextOut (pd.hDC, (int)dx, (int)dy, (LPCTSTR) pText, strlen(pText)); }
void Paint() { RECT rect; GetClientRect(hWnd, &rect); LONG centerX = (rect.left + rect.right) / 2; LONG centerY = (rect.top + rect.bottom) / 2; PAINTSTRUCT ps; HDC hdc; hdc = BeginPaint(hWnd, &ps); static TCHAR working[] = _T("Working"); static TCHAR resting[] = _T("Resting"); SetTextAlign(hdc, TA_CENTER | TA_BOTTOM); TextOut(hdc, centerX, centerY, greeting, _tcslen(greeting)); SetTextAlign(hdc, TA_CENTER | TA_TOP); TextOut(hdc, centerX, centerY, greeting, _tcslen(greeting)); EndPaint(hWnd, &ps); }
void SimplePrint(int nPages) { TCHAR temp[MAX_PATH]; DWORD size = MAX_PATH; GetDefaultPrinter(temp, & size); // default printer name HDC hDC = CreateDC(NULL, temp, NULL, NULL); // DC with default setting if ( hDC ) { nCall_AbortProc = 0; SetAbortProc(hDC, SimpleAbortProc); DOCINFO docinfo; docinfo.cbSize = sizeof(docinfo); docinfo.lpszDocName = _T("SimplePrint"); docinfo.lpszOutput = NULL; docinfo.lpszDatatype = _T("EMF"); docinfo.fwType = 0; if ( StartDoc(hDC, & docinfo) > 0 ) { for (int p=0; p<nPages; p++) // one page at a time if ( StartPage(hDC) <= 0 ) break; else { int width = GetDeviceCaps(hDC, HORZRES); int height = GetDeviceCaps(hDC, VERTRES); int dpix = GetDeviceCaps(hDC, LOGPIXELSX); int dpiy = GetDeviceCaps(hDC, LOGPIXELSY); wsprintf(temp, _T("Page %d of %d"), p+1, nPages); SetTextAlign(hDC, TA_TOP | TA_RIGHT ); TextOut(hDC, width, 0, temp, _tcslen(temp)); Rectangle(hDC, 0, 0, dpix, dpiy); Rectangle(hDC, width, height, width-dpix, height-dpiy); if ( EndPage(hDC)<0 ) break; } EndDoc(hDC); } DeleteDC(hDC); } wsprintf(temp, "AbortProc called %d times", nCall_AbortProc); MessageBox(NULL, temp, "SimlePrint", MB_OK); }
void DrawRuler (HDC hdc, int cx, int cy) { int i, iHeight ; LOGFONT lf ; TCHAR ch ; // Black pen with 1-point width SelectObject (hdc, CreatePen (PS_SOLID, cx / 72 / 6, 0)) ; // Rectangle surrounding entire pen (with adjustment) if (GetVersion () & 0x80000000) // Windows 98 Rectangle (hdc, 0, -2, cx + 2, cy) ; else // Windows NT Rectangle (hdc, 0, -1, cx + 1, cy) ; // Tick marks for (i = 1 ; i < 96 ; i++) { if (i % 16 == 0) iHeight = cy / 2 ; // inches else if (i % 8 == 0) iHeight = cy / 3 ; // half inches else if (i % 4 == 0) iHeight = cy / 5 ; // quarter inches else if (i % 2 == 0) iHeight = cy / 8 ; // eighths else iHeight = cy / 12 ; // sixteenths MoveToEx (hdc, i * cx / 96, 0, NULL) ; LineTo (hdc, i * cx / 96, iHeight) ; } // Create logical font FillMemory (&lf, sizeof (lf), 0) ; lf.lfHeight = cy / 2 ; lstrcpy (lf.lfFaceName, TEXT ("Times New Roman")) ; SelectObject (hdc, CreateFontIndirect (&lf)) ; SetTextAlign (hdc, TA_BOTTOM | TA_CENTER) ; SetBkMode (hdc, TRANSPARENT) ; // Display numbers for (i = 1 ; i <= 5 ; i++) { ch = (TCHAR) (i + '0') ; TextOut (hdc, i * cx / 6, cy / 2, &ch, 1) ; } // Clean up DeleteObject (SelectObject (hdc, GetStockObject (SYSTEM_FONT))) ; DeleteObject (SelectObject (hdc, GetStockObject (BLACK_PEN))) ; }
static void winFrameDrawText(HDC hDC, const char* text, int x, int y, COLORREF fgcolor) { COLORREF oldcolor; SetTextAlign(hDC, TA_TOP|TA_LEFT); SetBkMode(hDC, TRANSPARENT); oldcolor = SetTextColor(hDC, fgcolor); TextOut(hDC, x, y, text, strlen(text)); SetTextColor(hDC, oldcolor); SetBkMode(hDC, OPAQUE); }
EXPORT_C void CHuiCanvasGc::SetDefaults() { SetTextStyle(0); SetPenColor(TRgb(255,255,255)); SetPenWidth(1.0); SetOpacity(1.0); SetPolygonDrawMode(EHuiNoFill); SetTextAlign(EHuiAlignHLeft, EHuiAlignVTop); SetDrawMode(EHuiCanvasDrawModeBlend); EnableEffectiveOpacity(ETrue); SetPolygonFillTexture(NULL); SetPolygonFillTextureOrigin(TPoint(0,0)); CancelClipping(); }
static void vprint(int x, int y, int w, char *format, va_list va) { HDC dc = GetDC(wnd); RECT rc; rc.top = y; rc.bottom = y+16; rc.left = x - w/2; rc.right = rc.left + w; char buf[128]; int n = vsprintf(buf, format, va); SetTextAlign(dc, TA_CENTER); ExtTextOutA(dc, x, y, ETO_OPAQUE, &rc, buf, n, 0); ReleaseDC(wnd, dc); }
virtual BOOL on_draw (HELEMENT he, UINT draw_type, HDC hdc, const RECT& rc ) { if( draw_type != DRAW_CONTENT ) return FALSE; /*do default draw*/ dom::element el = he; const wchar_t* filename = el.get_attribute("filename"); if( !filename ) return FALSE; // no such attribute at all. // 先画图标 SHFILEINFOW sfi; HIMAGELIST hlist = (HIMAGELIST) SHGetFileInfoW( filename, 0, &sfi, sizeof(SHFILEINFO), /*SHGFI_USEFILEATTRIBUTES |*/ SHGFI_SYSICONINDEX | SHGFI_SMALLICON ); if(!hlist) return FALSE; int szx = 16; int szy = 16; ImageList_GetIconSize(hlist, &szx, &szy); int x = rc.left - 19; // 水平居左 // + (rc.right - rc.left - szx) / 2; int y = rc.top + (rc.bottom - rc.top - szy) / 2; // 垂直居中 //draw_file_icon(hdc, x, y, filename); ImageList_Draw(hlist, sfi.iIcon, hdc, x, y, ILD_TRANSPARENT); // 输出文字 UINT pta = GetTextAlign(hdc); SetTextAlign(hdc, TA_LEFT | TA_TOP |TA_NOUPDATECP); DrawTextW(hdc, (is_fullpath(el) && (wcslen(filename) > 1)) ? filename : el.text(), -1,const_cast<RECT*>(&rc), DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_PATH_ELLIPSIS | DT_NOPREFIX); SetTextAlign(hdc, pta); return TRUE; /*skip default draw as we did it already*/ }
void Panel::NowPutCText() { SetBkMode(hDC2,TRANSPARENT); //SetTextColor(hDC2,RGB(0,147,221)); SetTextColor(hDC2,RGB(255,100,100)); SelectObject(hDC2,hPEN_Cyan); SetTextAlign(hDC2,TA_CENTER);SetBkColor(hDC2,RGB(145,48,48)); SetBkMode(hDC2,OPAQUE); SelectObject(hDC2,hFNT_Panel); for (int i=0;i<ctext_num;i++) { MoveTo (hDC2,CText_list[i].x+CText_list[i].lngth/2, CText_list[i].y+CText_list[i].dir*7+5);LineTo(hDC2,CText_list[i].x+CText_list[i].lngth/2,CText_list[i].y+5); LineTo(hDC2,CText_list[i].x-CText_list[i].lngth/2,CText_list[i].y+5);LineTo(hDC2,CText_list[i].x-CText_list[i].lngth/2,CText_list[i].y+CText_list[i].dir*7+5); TextOut(hDC2,CText_list[i].x,CText_list[i].y,CText_list[i].text, sizeof(char)*strlen(CText_list[i].text)); } };
void TflatButton::paint(DRAWITEMSTRUCT *dis) { RECT &r=dis->rcItem; FillRect(dis->hDC,&r,GetSysColorBrush(COLOR_BTNFACE)); SetTextAlign(dis->hDC,TA_LEFT|TA_BASELINE); char_t pomS[256]; GetWindowText(dis->hwndItem,pomS,255); SIZE sz; GetTextExtentPoint32(dis->hDC,pomS,(int)strlen(pomS),&sz); TextOut(dis->hDC,(r.right-sz.cx)/2,r.bottom-sz.cy/2,pomS,(int)strlen(pomS)); if (isMouse) { DrawEdge(dis->hDC,&r,(dis->itemState&ODS_SELECTED)?EDGE_SUNKEN:EDGE_RAISED,BF_RECT); } else { DrawEdge(dis->hDC,&r,EDGE_SUNKEN,BF_FLAT|BF_RECT); } }
GUIEditMultiString::GUIEditMultiString(int32 bufSize/* = MAX_SIZE*/, eEditTextType eeType/* = EETT_ALL*/, GUIControlContainer * parent, const ControlRect &cr) : GUIInputText (eeType) , GUIMultiString ((char16 *)NULL, parent, cr) , isResizeable (false) { SetEditType(eeType); SetSelectable(true); SAFE_DELETE_ARRAY(GUIMultiString::textBuffer); GUIMultiString::bufferSize = bufSize; GUIMultiString::textBuffer = new char16[bufSize]; GUIInputText::SetText(GUIMultiString::textBuffer, GUIMultiString::textSize, GUIMultiString::bufferSize); SetTextAlign(Font::EAP_LEFT | Font::EAP_VCENTER); }
int ZLWin32PaintContext::stringWidth(const char *str, int len, bool rtl) const { if (myDisplayContext == 0) { return 0; } SetTextAlign(myDisplayContext, rtl ? TA_RTLREADING : 0); SIZE size; int utf8len = ZLUnicodeUtil::utf8Length(str, len); if (utf8len == len) { GetTextExtentPointA(myDisplayContext, str, len, &size); } else { static ZLUnicodeUtil::Ucs2String ucs2Str; ucs2Str.clear(); ZLUnicodeUtil::utf8ToUcs2(ucs2Str, str, len, utf8len); GetTextExtentPointW(myDisplayContext, ::wchar(ucs2Str), utf8len, &size); } return size.cx; }
void DrawTimeLine(HDC dc, QWORD pos, DWORD col, DWORD y) { HPEN pen=CreatePen(PS_SOLID,0,col),oldpen; DWORD wpos=pos/bpp; DWORD time=BASS_ChannelBytes2Seconds(chan,pos)*1000; // position in milliseconds char text[16]; sprintf(text,"%u:%02u.%03u",time/60000,(time/1000)%60,time%1000); oldpen=(HPEN)SelectObject(dc,pen); MoveToEx(dc,wpos,0,NULL); LineTo(dc,wpos,HEIGHT); SetTextColor(dc,col); SetBkMode(dc,TRANSPARENT); SetTextAlign(dc,wpos>=WIDTH/2?TA_RIGHT:TA_LEFT); TextOut(dc,wpos,y,text,strlen(text)); SelectObject(dc,oldpen); DeleteObject(pen); }
void PrintWinFont( UINT32 uiDestBuf, INT32 iFont, INT32 x, INT32 y, STR16 pFontString, ...) { va_list argptr; CHAR16 string[512]; HVSURFACE hVSurface; LPDIRECTDRAWSURFACE2 pDDSurface; HDC hdc; HWINFONT *pWinFont; int len; pWinFont = GetWinFont( iFont ); if ( pWinFont == NULL ) { return; } va_start(argptr, pFontString); // Set up variable argument pointer len = vswprintf(string, pFontString, argptr); // process gprintf string (get output str) va_end(argptr); // Get surface... GetVideoSurface( &hVSurface, uiDestBuf ); pDDSurface = GetVideoSurfaceDDSurface( hVSurface ); IDirectDrawSurface2_GetDC( pDDSurface, &hdc ); SelectObject(hdc, pWinFont->hFont ); SetTextColor( hdc, pWinFont->ForeColor ); SetBkColor(hdc, pWinFont->BackColor ); SetBkMode(hdc, TRANSPARENT); SetTextAlign(hdc, TA_TOP|TA_LEFT); #ifdef DEC_INTERNAL_LEADING if (y - pWinFont->InternalLeading >=0) { y -= pWinFont->InternalLeading; } #endif TextOutW( hdc, x, y, string, len ); IDirectDrawSurface2_ReleaseDC( pDDSurface, hdc ); }
BOOL CALLBACK ListProc(HWND Dlg, UINT msg,WPARAM wparam,LPARAM lparam) { switch (msg) { case WM_PAINT: { PAINTSTRUCT ps = {0}; HDC hDC = BeginPaint(Dlg, &ps); HDC hdcMem = CreateCompatibleDC(hDC); HBITMAP hbmMem = CreateCompatibleBitmap(hDC, gRc.right, gRc.bottom); HANDLE hOld = SelectObject(hdcMem, hbmMem); SetBkMode(hdcMem, TRANSPARENT); SetTextAlign(hdcMem, TA_CENTER); u32 x = gRc.right / 2; FillRect(hdcMem, &gRc, (HBRUSH)COLOR_WINDOW); SetTextColor(hdcMem, RGB(255, 0, 0)); for (u32 i = 0; i < size; i++) { s32 pos = gPosY+(i*20); if (pos > gRc.bottom) break; if (team[i][strlen(team[i])-1] == 1) { SetTextColor(hdcMem, RGB(255, 0, 0)); ExtTextOut(hdcMem, x, pos, ETO_CLIPPED, &gRc, team[i], strlen(team[i])-1, NULL); } else { SetTextColor(hdcMem, RGB(0, 0, 0)); ExtTextOut(hdcMem, x, pos, ETO_CLIPPED, &gRc, team[i], strlen(team[i]), NULL); } if ((i == size-1) && (pos < (s32)(gRc.top - 20))) gPosY = gRc.bottom; } BitBlt(hDC, 0, 0, gRc.right, gRc.bottom, hdcMem, 0, 0, SRCCOPY); SelectObject(hdcMem, hOld); DeleteObject(hbmMem); DeleteDC(hdcMem); EndPaint(Dlg, &ps); } return TRUE; } return FALSE; }
void dialog_paint_pb(HDC hDC) { HDC tdc, memdc; HBITMAP tbmp, membmp; HFONT hFont; memdc = CreateCompatibleDC(hDC); membmp = CreateCompatibleBitmap(hDC, 565, 23); SelectObject(memdc, membmp); // paint background tbmp = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BG)); tdc = CreateCompatibleDC(hDC); SelectObject(tdc, tbmp); BitBlt(memdc, 0, 0, 565, 23, tdc, 16, 334, SRCCOPY); DeleteDC(tdc); DeleteObject(tbmp); // paint foreground tbmp = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_PB)); tdc = CreateCompatibleDC(hDC); SelectObject(tdc, tbmp); BitBlt(memdc, 0, 0, progress * 565 / 100, 23, tdc, 0, 0, SRCCOPY); DeleteDC(tdc); DeleteObject(tbmp); // paint text hFont = CreateFont(16, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, VARIABLE_PITCH, TEXT("Tahoma")); SetBkMode(memdc, TRANSPARENT); SetTextAlign(memdc, TA_CENTER); SelectObject(memdc, hFont); TextOutW(memdc, 282, 3, pb_text, (INT)wcslen(pb_text)); DeleteObject(hFont); // paint membmp onto window BitBlt(hDC, 16, 334, 565, 23, memdc, 0, 0, SRCCOPY); DeleteDC(memdc); DeleteObject(membmp); last_progress = progress; }