ExtTextOut();

  • 2 Odpowiedzi
  • 1007 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline lemkat

  • ***
  • 257
  • Płeć: Mężczyzna
    • http://www.lemkat.webd.pl
  • Sprzęt: HTC HD2
ExtTextOut();
« dnia: Wrzesień 05, 2005, 20:11:23 »
Witam ponownie ;)

Do rysowania tekstu na ekranie pocketa uzywam funkcji ExtTextOut(), problem w tym ze jeden z parametrow funkcji to rozmiar lancucha.

Z funkcji odczytujacej procesy otrzymuje nazwe procesu w postaci:
TCHAR nazwa[ MAXPATH ]; ta nazwe wysylam do funkcji poprzez wskasnik

void WriteToScrean( HWND hWnd , LPCTSTR pText , int x , int y )
{
RECT rect;
HDC hdc;
CString sText;
UINT *uiLength;

hdc = GetDC( hWnd );
GetClientRect( hWnd , &rect );
sText = pText;

ExtTextOut( hdc , x , y , 0 , &rect, pText, ???? , NULL );
ReleaseDC( hWnd , hdc );
UpdateWindow( hWnd );
}

i teraz jak z zmiennej "LPCTSTR pText" uzyskac dlugosc nazwy pliku ???
prubowalem zapisac pText do zmiennej typu CString:
CString str = pText;
i uzyskac z niej rozmiar pText.GetLength tylko ze wartosc zwracana to int a ja potrzebuje uint a nie moge znalesc mozliwosci konwersji, jakies pomysly ?

*

Offline PiKNew

  • ***
  • 437
  • Płeć: Mężczyzna
  • Sprzęt: iPaq h5550, Loox n560
ExtTextOut();
« Odpowiedź #1 dnia: Wrzesień 05, 2005, 20:54:13 »
pText.GetLength  - jest bez sensu, jeśli już to sText.GetLength()

1. najnormalniej w świecie rzutuj typ (UINT)
2. tylko po co, jak możesz zamiast tych cSringów i innych od razu dać:

ExtTextOut( hdc , x , y , 0 , &rect, pText, (UINT)_tcslen(pText), NULL );

*

Offline lemkat

  • ***
  • 257
  • Płeć: Mężczyzna
    • http://www.lemkat.webd.pl
  • Sprzęt: HTC HD2
ExtTextOut();
« Odpowiedź #2 dnia: Wrzesień 05, 2005, 21:02:47 »
Sorry wlasnie wykukalem blad w kodzie ;/

CString sText = "Dowolny tekst";
UINT uiSize = sText.GetLength();

i dziala, kurde chyba za malo snu ;/

Kompilator pokazywal mi blad inny niz w rzeczywistosci, zdarza sie ;/

Pozdrawiam