Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI] Macra oraz LPSTR

Ostatnio zmodyfikowano 2011-05-25 14:19
Autor Wiadomość
GoldWolf
Temat założony przez niniejszego użytkownika
[WinAPI] Macra oraz LPSTR
» 2011-05-25 11:19:29
Zacznę od LPSTR w kursie jest podane takie rozwiązanie

DWORD dlugosc = GetWindowTextLength( hText );
LPSTR Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
GetWindowText( hText, Bufor, dlugosc + 1 );

No niby fajnie, jednak jak chce się potem coś robić z tym wprowadzonym tekstem to jest problem.
Po pierwsze czy jeśli chcemy bawić się tekstem to nie lepiej od razu to do stringa wrzucić?
Można też zrobić tak:
char bufor[max];
GetWindowText( hText, bufor, max );

Więc jak najlepiej się za to zabrać, np. ja chcę sprawdzić czy wprowadzono liczbę. Wiem jakbym to zrobił gdyby to był string (a raczej musiałbym sobie przypomnieć).
Czyli co jest lepsze i co można zrobić z tym LPSTR.

Druga sprawa to macro dokładnie użyłem:
hText = CreateWindowEx( 0, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 20, 150, 20, hwnd, NULL, hInstance, NULL );
Edit_LimitText(hText, 10);

To jedyny sposób na ograniczenie liczby danych wprowadzonych danych. Czy używanie makr jest zdrowe?
P-33425
DejaVu
» 2011-05-25 13:42:34
To nie jest jedyny sposób. Skoro makro istnieje i jest użyteczne to czemu go nie stosować? Grunt żeby nie tworzyć nowych bez potrzeby :) Nie zapiszesz niczego bezpośrednio do stringa w bezpieczny sposób z funkcji Windowsowych :) Dlatego stosuje się bufor pośredni, tj. tablicę bądź np. kontener std::vector.
P-33426
GoldWolf
Temat założony przez niniejszego użytkownika
» 2011-05-25 14:19:41
"To nie jest jedyny sposób" - a jaki jest w miarę dobry. Akurat na razie tych danych nie jest dużo więc chyba szkoda by angażować wektor.

Czyli po za konwersją lub bezpośrednim wczytywaniem do char nie bardzo da się coś osiągnąć, LPSTR jest ograniczony, bo zauważyłem jakieś tak funkcja są dla tych zmiennych.
P-33427
« 1 »
  Strona 1 z 1