Avatar Napisano Lipiec 20, 2018 Autor Zgłoś Udostępnij Napisano Lipiec 20, 2018 Witam! Od dawna odwiedzam forum i stronkę a dziś zostałem zmuszony :) do napisania pierwszego posta :) Problem mój w uproszczeniu polega na tym, że mam sobie pole EDIT (nie ma problemu z obsługą) i przycisk (BUTTON of kors, również spoko :) ) no i co zrobić, żeby po wpisaniu czegokolwiek do EDIT'a i walnięciu BUTTON'a, tekst z EDITA wyświetlił się w głównym okienku?? Dzięki z góry za pomoc Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Lipiec 20, 2018 Zgłoś Udostępnij Napisano Lipiec 20, 2018 Rozumiem, ze chodzi Ci o to, zeby tekst wyswietlal sie na pasku tytulowym okna. Jezeli tak, to musisz po prostu wyslac do okna glownego komunikat WM_SETTEXT. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Avatar Napisano Lipiec 20, 2018 Autor Zgłoś Udostępnij Napisano Lipiec 20, 2018 Nie nie:) Nie na pasku tytułowym, tylko normalnie w pozycji x,y :) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Lipiec 20, 2018 Zgłoś Udostępnij Napisano Lipiec 20, 2018 No to w takim razie musisz skorzystac z kontekstu urządzenia i funkcji TextOut(). Do swojej funkcji obslugi komunikatow dodaj cos takiego: case WM_PAINT: PAINTSTRUCT ps; HDC hDC; hDC=BeginPaint(hWnd,&ps); TextOut(x,y,bufor,strlen(bufor)); EndPaint(hWnd,&ps); break; gdzie: x,y - wspolrzedne punktu w ktorym chcesz wyswietlic tekst bufor - wskaznik do bufora (moze byc tablica charow) w ktorym znajduje sie tekst do wyswietlenia Nastepnie, przy nacisneiciu na przycisk zapisz tekst do zmiennej bufor i odmaluj okno funkcją RedrawWindow(). Nie jest to, zapewne, najoptymalniejsze rozwiazanie, ale powinno Ci naprowadzic na wlasciwy trop. ps. Poczytaj sobie jeszcze o funkcjach SetTextAlign(), SetBkMode(), SetTextColor()... Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Avatar Napisano Lipiec 20, 2018 Autor Zgłoś Udostępnij Napisano Lipiec 20, 2018 No więc robiłem tak jak napisałeś, ale nic to nie dało. Rysowanie zrobiłem tak jak podałeś, a RedrawWindow() wywołałem RedrawWindow(hWnd,&rect,NULL,RDW_UPDATENOW) gdzie hWnd - uchwyt okna, rect - prostokącik otrzymany po wywołaniu GetClientRect(). RedrawWindow() wywołałem po otrzymaniu wiadomości wciśnięcia buttona WM_COMMAND. Na teraz dość, bawię się jak wstanę:) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Nemo Napisano Lipiec 20, 2018 Zgłoś Udostępnij Napisano Lipiec 20, 2018 Po pierwsze w kodzie BIAŁEGO jest malutki blad ale pewnie go skorygowales, chodzi o to ze brakuje jednego parametru w funkcji TextOut a mianowicie pierwszym parametrem powinien byc uchwyt kontekstu po ktorym chhcesz malowac czyli HDC ;) A co do Redraw - to nie wiem jak to dziala ale lepije uniewaznic caly ekran i tez powinno zadzialac: BOOL InvalidateRect( HWND hWnd, // handle of window with changed update region CONST RECT *lpRect, // address of rectangle coordinates BOOL bErase // erase-background flag ); wywolanie funkcji w ten sposób InvalidateRect(hWnd, NULL, TRUE); uniewazni ci cale okno clienta i odmaluje go ;) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Avatar Napisano Lipiec 20, 2018 Autor Zgłoś Udostępnij Napisano Lipiec 20, 2018 Piasiu napisał: Po pierwsze w kodzie BIAŁEGO jest malutki blad ale pewnie go skorygowales, chodzi o to ze brakuje jednego parametru w funkcji TextOut a mianowicie pierwszym parametrem powinien byc uchwyt kontekstu po ktorym chhcesz malowac czyli HDC ;) Z tym nie było problemu:) Piasiu napisał: wywolanie funkcji w ten sposób InvalidateRect(hWnd, NULL, TRUE); uniewazni ci cale okno clienta i odmaluje go ;) Dzięki wielkie, zadziałało :) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Lipiec 20, 2018 Zgłoś Udostępnij Napisano Lipiec 20, 2018 Piasiu napisał: Po pierwsze w kodzie BIAŁEGO jest malutki blad ale pewnie go skorygowales, chodzi o to ze brakuje jednego parametru w funkcji TextOut a mianowicie pierwszym parametrem powinien byc uchwyt kontekstu po ktorym chhcesz malowac czyli HDC ;) Przepraszam za ten "malutki" blad :? - tak to jest jak sie pisze posty o godzinie drugiej w nocy ;-). Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Avatar Napisano Lipiec 21, 2018 Autor Zgłoś Udostępnij Napisano Lipiec 21, 2018 Heh ;) Jeszcze jeden problemik z redraw'em :) Otóż, otwierając okienko nr1, a następnie okienko nr2, jeśli zasłoni się okienko nr1, okienkiem nr2, to na okienku nr1 znikają wszystkie pola (edit,static itp.) Jakieś pomysły/rady? :) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Jarema Napisano Lipiec 21, 2018 Zgłoś Udostępnij Napisano Lipiec 21, 2018 A) Może pomieszales cos ze stylami okna. B) Spróbuj w WM_PAINT zwrócić 0 zamiast break; ("break" pisal Bialy) C) Jakiś inny problem z WM_PAINT, może pominąłeś jakąś instrukcje, albo coś innego. Ja bym zwrócił uwagę szczególnie na komunikat WM_PAINT. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Lipiec 21, 2018 Zgłoś Udostępnij Napisano Lipiec 21, 2018 Ad B) Nie no - jak jest break;, to tam zaraz po switch() jest return 0; - nie jest tak, ze funkcja nic nie zwraca. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.