002
21.01.2005, 19:53 Uhr
RedEagle
|
Das ist ja nur nen Codeausschnitt 
Hier der Komplette code für WM_PAINT:
| C++: |
case WM_PAINT: //--------------------------------------------------------- { PAINTSTRUCT ps; HDC hDC; const char szUeberschrift[] = "Der ASCII Zeichensatz (128 Zeichen)"; hDC = BeginPaint(hWnd, &ps); { int iXPos = iRand; int iYPos = 2 * iRand; int i = 0; char szText[30]; int iStrLen = 0; SIZE size; DrawText(hDC, szUeberschrift, lstrlen(szUeberschrift), &rect, DT_SINGLELINE | DT_CENTER); for (; i < 128; ++i) { iStrLen = wsprintf(szText, "%i: %c", i, (char)i); GetTextExtentPoint32(hDC, szText, iStrLen, &size); if (rect.right <= (iXPos + size.cx + iRand)) { iXPos = iRand; iYPos += size.cy + iVSpace; } iXPos += size.cx + iSpace; } } EndPaint(hWnd, &ps); break;; }
|
zu GetTextExtentPoint32(hDC, szText, iStrLen, &size); :
| Zitat von bzw aus einem Tutorial: |
Mit der GetTextExtentPoint32 Funktion kann man die Maße eines bestimmten Textes bestimmen Da die Größe des Textes von der Schriftgröße abhängt, müssen wir den Handle zu unserem Device Context als ersten Parameter übergeben, damit die Funktion sich die Maße der Schrift besorgen und so die Größe des gesamten Textes ausrechnen kann. Der zweite Parameter ist ein Zeiger auf den Text, dessen Maße bestimmt werden sollen. Im dritten Parameter muss die Länge des Stringes stehen. Mit dem vierten Parameter übergeben wir einen Zeiger auf die SIZE Struktur, in der dann die Maße des Textes gespeichert werden.
|
-- MFG RedEagle Dieser Post wurde am 21.01.2005 um 19:55 Uhr von RedEagle editiert. |