Skocz do zawartości

Jarema

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Jarema

  1. Jarema

    Znak na kod ascii

    https://www.winapi.org/forum/viewtopic.php?t=263&highlight=ascii Nie dam ani jednego slowa komentarza. (Myslalem ze poprzedni post na ktory odpowiadalem popsul moja psychike ale ten tez jest niezly), ludzie prosze szukajcie najpierw po forum zamiast dawac kilka razy ten sam temat.
  2. Jarema

    Static

    No ja już naprawdę nie wiem (moja psychika już siada): https://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/staticcontrols/staticcontrolreference/staticcontrolstyles.asp | Jeśli mi powiesz że szukałeś i nie było to ja jestem Matka Teresa z Kalkuty
  3. Jarema

    Static

    To jest najzwyklejsza kontrolka ktora stworzysz CreateWindow. (Nie wierze ze nie znalazles tego na Microsofcie, oczywiscie jesli szukales w MSDN, bo jak na stronie glownej to powodzenia) No a manual do Winapi, coz ale nie sadze zebyc znalaz cos lepszego od MSDN.
  4. Jarema

    Menu

    Teraz to już naprawdę Cię nie rozumiem. Z Twoich postów domyślam się że jesteś głęboko początkujący. Ale nie czaję tego dlaczego pytasz o program używający menu skoro podałem Ci go juz 2 razy. Przecież to jest normalny program tyle że nie zmontowany w projekt. Mam dla Ciebie taką radę, jeśli chcesz zobaczyć że to naprawdę program to utwórz sobie nowy projekt dodaj do niego pliczek z rozszerzeniem *.c, wklej do niego ten kod, potem utwórz sobie pliczek z rozszerzeniem *.rc, wklej do niego kwałek kodu opatrzony moim komentarzem "plik z zasobami". Skompiluj i odpal. Jeśli wtedy zrozumiesz że to co podałem to program to chyba będzie Ci łatwiej zrozumieć swój błąd. Tak na marginesie to dobrze radziłbym trochę zapoznać się z jakiegoś kursu np. z: tego.
  5. Jarema

    Menu

    na 90% mylisz nazwe zasobu. Tak dla malego sprostowania, nazwa projektu nie musi byc wcale taka sama jak pliczek z kodem w nim, bo jak sadze projekt1234.cpp to nazwa pliku z kodem. A jesli chodzi o nazwe skryptu z zasobami to jest taka jaka nadales, bo rozumiem ze jak dolaczales zasoby to najpierw utworzyles plik z rozszerzeniem *.rc, zreszta zobacz sobie w katalogu z projektem on tam musi byc. Ale plik nagłówkowy zasobow musisz zalaczac prawidlowo skoro nie zlasza kompilator zadnych bledow. Coz pokombinuj cos bo z tymi zasobami to czesto sa takie klocki.
  6. Jarema

    Tree-View kontrolka

    BOOL TreeView_GetItem( HWND hwndTV, LPTVITEM pitem ); tak pobierasz konkretny element, i potem w strukturze pitem masz wszystkie dane, text, children items itd.
  7. Uff, po mozolnych 3 minutowych poszukiwanych udalo sie : https://www.winapi.org/forum/viewtopic.php?t=26&highlight=del
  8. Jarema

    Midi

    Poczytaj sobie o interfejsie MCI.
  9. Sprawdzalem to moim programem pisanym na bazie tejze funkcji. I wywnioskowalem ze nie chodzi o to ze zwraca cos dziwnego tylko poprostu nie widzi wogole MessageBox-ow ktore sa uruchamiane w jednej instancji z jakims programem. Natomiast jesli uruchomisz program bez procedury okna wywolujacy poprostu MessageBox to wykryje go jako osobne okno. Uwazam ze nie ma co sie klucic w tej sprawie. Poprostu twoje rozwiazanie jest bezkonkurencyjne jesli nadawca tematu chce miec wszytkie procesy ktore sa uruchomione w systemie, ale wtedy kosztem tego bedzie musial filtrowac to jakos zeby dostac tylko programy ktore chce wyswietlic. Natomiast moje jest dobre do tego zeby wychwycic tylko programy "typowe" takie ktore maja okienka, te ktorych uzytkownik swiadomie uzywa.
  10. Wezmie pod uwage konsolowe programy bo jakby nie bylo sa one odpalane w oknie. Rowniez nie potraktuje MessageBox-a jako osobny program nawet jesli jako HWND damy NULL, bo sprawdzalem. Najpierw radze sprawdzic zanim cos sie powie . Poza tym nie uwazam ze napisanie jednej funkcji jest duzym wysilkiem dla programisty i programu, no oczywiscie zalezy jakim kto jest programista - nie ma w tym wypowiedzeniu zadnych aluzji. Powodzenia.
  11. Będą wzięte pod uwagę okna zminimalizowane a nawet okna ukryte. Żeby dojść do tego programu najbardziej na górze trzeba z pośród wszystkich znalezionych okien zostawic tylko te dla ktorych funkcja GetParent zwraca NULL.
  12. Jest prostszy sposób, ale uzyskasz nim jedynie programy mające okna: Musisz użyć funkcji EnumWindows(WNDENUMPROC lpWndProc, LPARAM lParam); gdzie lpWndProc to wskaźnik do procedury wyliczającej wszytkie programy mające okna, w lParam przekazujesz sobie wskaźnik do tablicy uchwytów okien. EnumWindowsProc ma następującą postać: EnumWindowsProc(HWND hwnd, LPARAM lParam) { HWND *TabhWnd = (HWND*)lParam; static int i = 0; TabhWnd[i] = hwnd; i++; return TRUE; } Teraz do tablicy TabhWnd masz wpisane uchwyty wszytkich okien działająch programów. I z takim uchwytem możesz pobrać łatwo nazwę programu (widniejącą na pasku tytułu) w ten sposób: GetWindowText(TabhWnd[i], title, 49); Tylko uwaga, musisz pamiętać by to i w funkcji za każdym razem zerować po wywołaniu EnumWindows. To tyle, miłego kodowania.
  13. Jarema

    HANDLE + Get + pamiec

    Owszem. Jest ich dużo więcej, głównie właśnie funkcje z ikonkami, bitmapami itp. Jeśli pobierzesz sobie raz uchwyt ikonki (stworzysz nowa i otrzymaz do niej uchwyt) to niezbyt obciąża zasoby, ale jeśli utworzysz pętle to może być "mały" problem w zależności od ilości pamięci. Dobrze mieć MSDN bo tam pod każdą taką funkcją jest to ostrzeżenie, że użytkownik musi sam zlikwidować zaalokowane zasoby.
  14. Jarema

    HANDLE + Get + pamiec

    MSDN: Z tego tekstu dokładnie wynika że trzeba usuwać tak stworzone ikony, za kazdym razem jest tworzony nowy obiekt typu HICON i jest rezerwowana na niego pamięć.
  15. W zdarzeniu WM_PAINT jest odmalowywane całe okno. Więc tak się dzieje, ponieważ w WM_PAINT masz tylko jeden tekst ktory chcesz wyswietlic dlatego wyswietla tylko jeden, a cala reszte zamalowywuje na tlo. Jeśli chcesz w ten sposob pisac to musisz wszytko robic w WM_PAINT, albo z WM_PAINT za każdym razem wysyłać komunikat w którym jest malowany pozostały tekst.
  16. Jarema

    Pobieranie z Rejestru

    https://www.winapi.org/index.php?option=content&task=view&id=42&Itemid=30 Dobry tutorial :)
  17. Jarema

    Wysyłanie maili

    Tutaj masz bardzo ładne rozwiązanie z poziomu Winsock: https://www.kodmaker.obywatel.pl/winapi/winsocmail.htm
  18. Te błędy oznaczją mniej więcej tyle że jest nagłówek jakiejś funkcji ale nie ma jej ciała. Czyli dokładnie dołączyłeś pliczek *.h a nie masz biblioteki z ciałem tej funkcji. Dodaj plik *.lib.
  19. Jarema

    okna dialogowe

    Problem polega na tym ze istnieje konflikt identyfikatorow. Jesli stworzysz okno i na nim masz tekst w StaticControl ktory ma ID: IDC_STATIC1 to na drugim oknie jest to samo. Jeśli zmienisz text w pierwszym oknie automatycznie jest dokonywana zmiana w drugim ponieważ to ten sam identyfikator. Moze powinienes jakos uzyc MDI, chociaz chyba jest jakis prostszy sposob.
  20. Jarema

    scroll w listcontrol

    Sorki ze nie napisalem odrazu, ale nie mialem przy sobie MSDN. ListView_GetTopIndex( hList ); - to funkcja na pobranie najwyzszego elementu. ListView_Scroll( hList, 0, cxSpace ) ); - tak scrollujesz. ListView_GetItemRect( hList, 0, &rect, LVIR_BOUNDS ); - tak pobierasz wysokość elementu ListView, z tym że cy = rect.bottom - rect.top; To chyba wszystko. :)
  21. Jarema

    scroll w listcontrol

    Zgadzam się z przedmówcą. Musisz najpierw pobrać index elementu znajdującego się na samej górze, jest do tego specjalna funkcja. Potem użyc scrollowania, pobrany_index*wysokość_elementu. Wtedy będzie działało bezbłędnie.
  22. Jarema

    MFC, a WinApi

    Dokładnie tak jak poprzednicy. MFC to taka nakładka na Winapi. I podobnie jak poprzednik radzę Ci zainteresować się .NET-em zamiast MFC bo MFC to po pierwsze duże zamieszanie, a po drugie duży bałagan i nieład.
  23. Jarema

    petzold - przyklady z CD

    Cóż, książkę posiadam, jak i przykłady do niej. Lecz jest maly problem, mam modem. Ale to najprawdopodobniej sie zmieni juz w tym tygodniu, wiec jak tylko bede mial to stale to postaram sie to wyslac podobnie jak tego nowego Petzolda ktorego juz obiecuje duzo czasu, za to wszystkich przepraszam. Postaram sie to zrobic jak najszybciej.
×
×
  • Utwórz nowe...