Skocz do zawartości

Parę pytań :)


Recommended Posts

Napisano

Witam.
Żeby się nie rozpisywać przejdę do rzeczy :

1.Mam pole EDIT jest subklasowane i przechwytuję komunikat o wciśnięciu ENTER, ale jeżeli EDIT jest MULTILINE to po SetWindowText(hEdit""); ciągle zostaje znak nowej linii (tj. kursor znajduje się w 2 linii edita), a jeśli EDIT jest jedno liniowy to przy naciśnięciu ENTER jest dźwięk (taki sam jak w czasie wpisywania, gdy skończy się miejsce w kontrolce). Pytanie brzmi jak się tego pozbyć? Próbowałem dać return true; / return false; przy komunikacie ale nic to nie zmieniło :(.

2.Jak już jestem przy polach EDIT co trzeba jeszcze zrobić żeby mieć w programie rich edit ? Mam zainicjowane commoncontrols(ICC_WIN95_CLASSES), wczytałem DLL'a następnie próbuje stworzyć okno za pomocą stylu (RICHEDIT_CLASS10A lub RICHEDIT_CLASS) ale okna jak nie ma tak nie ma :( (PS. Nagłówek dołączyłem :) ). Jakby ktoś mógł rzucić kodem byłbym wdzięczny :).

3.Trzecie pytanie jest podobne do pytania jakie zadał kiedyś Piasiu, czyli czy istnieje kontrolka która pozwala wyświetlać HTML ?

Z góry dzięki za pomoc :).

Napisano

ad. 2
Ja laduje RichEdit tak:

LoadLibrary("RICHED32.DLL");   

  hwnd = CreateWindowEx(0, "RICHEDIT", "", WS_VISIBLE,
           0, 0, 100, 50, NULL, NULL, hInstance, NULL);   

I naglowek: "richedit.h"

Wiecej informacji na pewno znajdziesz w MSDN.

ad. 3
Do wyswietlania nada sie RichEdit, ale kod HTML musisz sam obsluzyc.
Jezeli cie to interesuje to znalazlem na grupie:
https://groups.google.pl/groups?q=RichEdit+C%2B%2B+winapi&start=10&hl=pl&lr=&ie=UTF-8&selm=aj5kln%24udp%241%40lacerta.tiscalinet.it&rnum=15

i tutaj tez cos jest:
https://spiff.tripnet.se/~iczelion/ - dzial tutoriale i RichEdit

Napisano

RichEdit działa :) po prostu wywołałem złego dll’a :$ , a co do pytania 3 to istnieje jakaś inna kontrolka do obsługi HTML przykładem niech będzie gadu-gady gdzie w czasie rozmowy mamy do czynienia tak jakby z oknem IE.

Napisano

w gg jest to normalna kontrolka typu edit z muliline i tylko do odczytu. Wystarczy spojrzec kilka postow wstecz i znajdziesz rozwiazanie jak dodaje sie nowa linie do edita. Jezeli naprawde ci ciezko to podpwiem ze temat nazywa sie "po prostu edit".

Napisano

A wiec trochę źle opisałem problem, mam dwa pola EDIT jedno służy do wprowadzania tekstu drugie jest READONLY. EDIT do wprowadzania tekstu jest subklasowany i przechwytuję komunikat wciśnieńcia ENTER, następnie dodaję tekst do pola READONLY (także dodawanie tekstu nie stanowi problemu ;) ) problem polega na tym iż jeśli EDIT do wprowadzania tekstu jest jedno liniowy to po naciśnięciu enter odgrywany jest dźwięk a jeżeli jest multiline to nawet po ustawieniu SetWindowText(hEdit,""); pozostaje w nim znak nowej lini i tekst wprowadzamy od 2 lini :/. Jak się tego pozbyć (mowa o dźwięku lub znaku nowej lini jeśli edit do wprowadzania tekstu jest multiline)?

A co do GG to trochę ciężko mi uwierzyć ze w rozmowie użyto zwykłego EDITa (wystarczy się pobawić trochę w przeciąganie obrazków na obrazki itp. A w pewnym momencie w okienku jest strona IE "Brak strony")

Napisano

W GG to chyba rzeczywiście jest kontrolka HtmlView, bo mi tez sie taka strona kilka razy już wyświetliła. Poszperałem torchę w msdnie i na googlach i wywnioskowałem (żadnych jednoznacznych informacji nie znalazłem), że można coś takiego zrobić w MFC (tam jest odpowiednia kontrolka, ale używa klas Microsoftu :( ).

Qbu$ wrzuć tu kod funkcji obsługi subclassowanego edita, może tam jest jakiś błąd.

Napisano

Co do kontrolki HTML to znalazłem parę ciekawych linków :
https://www.wischik.com/lu/programmer/webform.html
https://www.codeguru.com/Cpp/I-N/ieprogram/article.php/c4379

A tu jest Kod edita:

LRESULT CALLBACK procEdit (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg){
        case WM_KEYDOWN:
                switch(wParam){
                case 13:
                        if(GetWindowTextLength(hwnd)<=0) break;
                        GetWindowText(hwnd,pOut.data,GetWindowTextLength(hwnd)+1);
                        SetWindowText(hwnd,"");
                        SetFocus(hwnd);
...
... // tu było ustawienie tekstu w EDICIE READONLY
...
                        break;
                        }
                        break;
                }
                        //przekazanie komunikatów do oryginalnych funkcji 
                        return CallWindowProc (WndProcOrg, hwnd, uMsg, wParam, lParam);

}
Napisano

Napisałem sobie taki programik do analizowania okien, wstukałem okno GG i w sekcji "dzieci" wyskoczyło takie coś:

Numer okna: 2216
Nazwa klasy: RichEdit20A
Nazwa okna:

Czyli to RichEdit 2.0

Napisano
szatkus napisał:
Napisałem sobie taki programik do analizowania okien

Heh, też muszę sobie coś takiego w wolnej chwili skrobnąć.

szatkus napisał:
Czyli to RichEdit 2.0

Ale dwa razy coś takiego Ci wyskoczyło (tam w oknie rozmowy są dwie kontrolki do wyświetlania)?

Nie zmienia to jednak faktu, że fajnie by było mieć kontrolkę wyświetlającą html. ;-)

Napisano

Ja off-topic.
Ludzie nauczcie się tytułować swoje problemy z jakims sensem bo jak ktoś kto przegląda forum ma wiedziec mniewiecej o co wam chodzi jak zatytulujecie to tak "Parę pytań :)".

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...