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

Funkcja GetWindowsText WinApi

Ostatnio zmodyfikowano 2016-12-26 21:04
Autor Wiadomość
Krzychu97
Temat założony przez niniejszego użytkownika
» 2016-12-26 20:16:53
Warunki poprawione. Co zwraca u mnie? Szczerze mówiąc nie mam pojęcia, bo program zachowuje się tak samo z nią jak i bez niej. Po naciśnięciu Start wyskakuje mi okno z tytułem komunikat i bez żadnego tekstu w środku. Jest jeszcze przycisk OK na okienku. Oczywiście przed naciśnięciem Startu wpisuje coś w pole tekstowe.
P-155471
j23
» 2016-12-26 20:32:45
To trzeba napisać kod, który wypisze Ci wartość, albo po prostu użyć debuggera.
C/C++
int n = GetWindowText( hText, Bufor, 256 );

char msg_text[ 256 ];

if( n == 0 ) sprintf( msg_text, "GetWindowText failed -> %i", GetLastError() );
else sprintf( msg_text, "GetWindowText() = %i \n\n %s", n, Bufor );

MessageBox( hwnd, msg_text, "Komunikat", MB_OK );
P-155476
Krzychu97
Temat założony przez niniejszego użytkownika
» 2016-12-26 20:39:53
A więc wkleiłem Twój kod, dodałem potrzebną bibliotekę i otrzymałem komunikat z napisem: "GetWindowsText failed -> 1400". Do pola tekstowego wpisałem "qwe" jeśli to ma jakieś znaczenie.
P-155478
j23
» 2016-12-26 20:50:21
1400 to ERROR_INVALID_WINDOW_HANDLE, czyli coś z uchwytem nie tak.

Mamy winowajce:
C/C++
HWND hText; // <--- globalny hText
...


//w WinMain
HWND hText = CreateWindowEx(...); //<--- lokalny hText
W WndProc odwołujesz się do globalnego hText, ale uchwyt przypisujesz lokalnej zmiennej. Ot i cały błąd.
 
P-155480
Krzychu97
Temat założony przez niniejszego użytkownika
» 2016-12-26 20:54:26
Okej. To teraz jeszcze proszę powiedz co muszę zmienić? Wyrzucić globalny hText?
P-155482
j23
» 2016-12-26 20:59:04
Wywal lokalny, a wartość przypisz globalnemu uchwytowi... ktoś tu nie umie w zmienne, a zabiera się za WinAPI.
P-155483
Krzychu97
Temat założony przez niniejszego użytkownika
» 2016-12-26 21:04:33
OK. Zmieniłem fragment na taki:

C/C++
hText = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER,
50, 50, 150, 20, hwnd, NULL, hInstance, NULL );

I wszystko działa. Wielkie dzięki za pomoc.
P-155484
1 « 2 »
Poprzednia strona Strona 2 z 2