![]() |
Hilfe bei Übersetzung der function nach Delphi
Hey,
könnt Ihr mir helfen bei der Übersetzung dieser Methode nach Delphi??
Code:
Mir geht es dabei um das erzeugen der Vista "Glow-Schrift"
void CMainDlg::OnDrawItem ( UINT uID, LPDRAWITEMSTRUCT lpdis )
{ CDCHandle dc = lpdis->hDC; CRect rcCtrl = lpdis->rcItem; CString sText; const UINT uFormat = DT_SINGLELINE|DT_CENTER|DT_VCENTER|DT_NOPREFIX; if ( IDC_CLOCK != uID || ODT_STATIC != lpdis->CtlType ) { SetMsgHandled(false); return; } m_wndTimeLabel.GetWindowText ( sText ); [b] if ( IsCompositionEnabled() ) { // Set up a memory DC where we'll draw the text. CDC dcMem; dcMem.CreateCompatibleDC ( dc ); dcMem.SaveDC(); // Create a 32-bit bmp for use in offscreen drawing when glass is on BITMAPINFO dib = {0}; CBitmap bmp; dib.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); dib.bmiHeader.biWidth = rcCtrl.Width(); dib.bmiHeader.biHeight = -rcCtrl.Height(); // negative because DrawThemeTextEx() uses a top-down DIB dib.bmiHeader.biPlanes = 1; dib.bmiHeader.biBitCount = 32; dib.bmiHeader.biCompression = BI_RGB;[/b] //habe ich auch übersetzt aber geht bei mir nicht!! bmp.CreateDIBSection ( dc, &dib, DIB_RGB_COLORS, NULL, NULL, 0 ); // Set up the DC state. DTTOPTS dto = { sizeof(DTTOPTS) }; dto.dwFlags = DTT_COMPOSITED|DTT_GLOWSIZE; dto.iGlowSize = 10; //wie übersetz ich das hier?? dcMem.SelectBitmap ( bmp ); dcMem.SelectFont ( m_font ); DrawThemeTextEx ( m_hTheme, dcMem, 0, 0, CT2CW(sText), -1, uFormat, rcCtrl, &dto ); dc.BitBlt ( rcCtrl.left, rcCtrl.top, rcCtrl.Width(), rcCtrl.Height(), dcMem, 0, 0, SRCCOPY ); dcMem.RestoreDC(-1); } //der teil ist nicht so wichtig!! else { dc.SaveDC(); dc.FillSolidRect ( rcCtrl, GetSysColor(COLOR_3DFACE) ); dc.SetBkMode ( TRANSPARENT ); dc.SetTextColor ( GetSysColor(COLOR_WINDOWTEXT) ); dc.SelectFont ( m_font ); dc.DrawText ( CT2CW(sText), -1, rcCtrl, uFormat ); dc.RestoreDC(-1); } } Danke schon mal.. Edit: mit den bitmapheader und DTTOPTS habe ich keine probleme, die habe ich übersetzt bekommen! ich glaub ich hab eher nen problem damit, was ich da überhaupt machen, denn ich kenn mich mit dem zeichnen selber nicht so wirklich aus... ;-( da brauch ich nachhilfe... |
Re: Hilfe bei Übersetzung der function nach Delphi
Hallo
Übersetze doch mal, was für dich klar / einfach ist. z.B
Code:
dib.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
Delphi-Quellcode:
etc.
dib.bmiHeader.biSize := SizeOf(BITMAPINFOHEADER);
|
Re: Hilfe bei Übersetzung der function nach Delphi
Zitat:
Mache du den Anfang und sag uns an welcher Stelle du nicht weiter kommst :-) |
Re: Hilfe bei Übersetzung der function nach Delphi
Also mir geht es eher um ein paar Funktionen, wie ich den Bitmap Header und DTTOPTS übersetze weiß ich! Genauso wie ich das mit dem hdc übersetze, glaub hab mehr Probleme in der Anwendung, also was ich da eigenbtlich tue ;-( naja kenn mich ncoh nicht so aus mit dem Zeichnen per Winapi...
vlt könnt Ihr mir das erklären, was da genau gemacht wird, ich glaube das würde mir schon helfen.. |
Re: Hilfe bei Übersetzung der function nach Delphi
Übersetzte den Code doch so weit es dir möglich ist und poste dein Ergebnis mit den kommentierten unklaren Stellen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz