Skocz do zawartości

Aspect

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Aspect

  1. Aspect

    mdi+WM_SIZE

    Coś musisz mieć skopane w kodzie. Może gdzieś break'a nie postawiłeś? U mnie z obsługą tego komunikatu okna wyświetlają się normalnie.
  2. Nie "zamiast". Dodawanie przedrostka LP, to tylko taka konwencja w nazewnictwie struktur, mająca dać do zrozumienia programiście (nie kompilatorowi), że ma do czynienia z wskaźnikiem (LP od Long Pointer). Gwiazdka, natomiast, to samo "daje do zrozumienia" właśnie kompilatorowi. Oto przykładowa, prosta struktura, którą znalazłem w MSDNie: typedef struct _MENUBUTTONDATA { int idCommand; int x; int y; } MENUBUTTONDATA, *LPMENUBUTTONDATA;
  3. Do Twojego kodu wkradł się mały błąd. W SendMessage zamiast wskaźnika na tablicę z rozmiarami części StatusBar'a podałeś po prostu jej pierwszy element. Poprawiony kod wygląda następująco (nie kompilowałem go, ale powinien działać): int StatusParts = 5; int StatusPartsWidth1[] = {80,160,240,320, -1}; hwndStatus = CreateStatusWindow( WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CCS_BOTTOM , " status: nie zalogowany", hwnd, 990 ); SendMessage(hwndStatus, SB_SETPARTS, (WPARAM) StatusParts, (LPARAM) StatusPartsWidth1 ) ; Ps. Starajcie się umieszczać kod na forum między odpowiednimi znacznikami: [ code ] ... [ /code ].
  4. Aspect

    double buffering w gdi

    Jeżeli masz kod, który nie działa najlepiej go tutaj wkleić. Podwójne buforowanie ja implementuję tak: case WM_PAINT: { HDC hDC; // (1) HDC hdcMem; // (2) PAINTSTRUCT ps; hDC=BeginPaint(hwndChild,&ps); // (3) hdcMem=CreateCompatibleDC(hDC); // (4) ... // (5) BitBlt(hDC,0,0,200,200,hdcMem,0,0,SRCCOPY); // (6) DeleteDC(hdcMem); // (7) EndPaint(hwndChild,&ps); // (8) } break; Komentarze do linijek: 1. Deklarujesz uchwyt kontekstu ekranu (pierwszoplanowy). 2. Deklarujesz uchwyt kontekstu w pamięci (drugoplanowy). 3. Zaczynasz rysować (pobierasz uchwyt kontekstu ekranowego). 4. Tworzysz kontekst kompatybilny z ekranowym (w sensie ilości kolorów i innych parametrów) i pobierasz uchwyt do niego. 5. Tu sobie rysujesz na kontekscie w pamięci, czyli np. : Ellipse(hdcMem,50,50,100,100);. 6. Kopiujesz szybko zawartość jednego kontekstu do drugiego. 7. Zwalniasz kontekst w pamięci. 8. Kończysz rysowanie.
  5. Aspect

    C#

    Na pewno zawsze warto poznać nową technologię (a ta, w dodatku, ma według mnie przyszłość - już przyjęła się w firmach produkujących oprogramowanie, ze względu na dużą intuicyjność i łatwość tworzenia aplikacji). Moja rada: Pobaw się tym przez tydzień lub dwa i sprawdź czy Ci się spodoba. Ja w C# zacząłęm pisać w te wakacje i do WinAPI niestety już nie wróciłem. Co do książki to polecam "Język C# i Platforma .NET" Andrew Troelsena. Myślę, że jest dobra dla osób zaczynających swoją przygodę z "siszarpem" i "dotnetem".
  6. Odpowiedź na to pytanie wrzuciłem do FAQ (TUTAJ).
  7. W DLLkach w Dev (nie wiem, jak jest w Visualu z DLLkami, ale myslę, że podobnie) trzeba niestety dolinkować libgdi32.a.
  8. 1. Tak jak rock_player napisał, najprościej będzie obsłużyć komunikat WM_CTLCOLORBTN. Jako WPARAM dostajesz tam kontekst urządzenia, wystarczy więc gdy użyjesz funkcji SetTextColor(). 2. Służy do tego styl BS_LEFT
  9. Domyślam się, że pobierasz czcionkę z okna rodzica. Jeżeli tak, to obawiam się, że i tak musisz stworzyć sobie nową czcionkę, bo wszelkie zmiany na czcionce rodzica odbiją się na innych zawieranych przez niego kontrolkach (buttonach, text boxach itp.). Ja bym Twój problem rozwiązał następująco (też robiłem kontrolkę - link ): 1. Pobrałbym uchwyt do czcionki rodzica. 2. Pobrał informacje o czcionce do struktury LOGFONT. 3. Zminił w tej strukturze pole odpowiadające za podkreślenie. 4. Stworzył sobie na podstawie tej struktury nową czcionkę. (Dokładny kod masz tu: https://www.winapi.org/forum/viewtopic.php?t=553&highlight=getobject, ostatni post.) I teraz można wypisać za pomocą tej czcionki tekst i ją usunąć lub zapisać do późniejszego użycia.
  10. Aspect

    Generator

    Niestety, Piasiu ma rację. Z Twojego postu bardzo trudno domyslić się o co Ci dokładnie chodzi. Co więcej, nawet po Twoim "wyjaśnieniu" w dalszym ciągu nie wiem czy masz na myśli wyrażenia regularne, czy coś innego. Proponuję lekturę (nie będącą co prawda odpowiedzią na Twój problem) tekstu pod tym linkiem.
  11. Aspect

    Problem z MessageBox

    Spróbuj jako pierwszy parametr podać uchwyt Twojego okna zamiast 0.
  12. Aspect

    Plik ini

    Do porównywania stringów polecam używać funkcji strcmp.
  13. Aspect

    Blad

    Ja sie szybciutko wytłumaczę ;-). Pinolec oparł aplikacje o starą wersję szkieletu (w której były tylko moje dane :? ) Wysłem mu jednak niedawno nową, poprawioną.
  14. Ja zrozumiałem, że sapciowi1 chodziło o te kontrolki, które ustawia się na dialogboxie podczas graficznego projektowania aplikacji, czyli o wizualne edytowanie pliku zasobów (zamiast pisac w kodzie PUSHBUTTON... przeciągamy i upuszczamy symbol przycisku na dialogboxa).
  15. Używając VS 6 odniosłem wrażenie, że są rysowane (przemawia za tym fakt, że kontrolki użytkownika były przedstawiane za pomocą szarych prostokątów, a zwykłe kontrolki po ustawieniu stylu WinXP nadal miały stary wygląd). Ale juz w VS .NET (przynajmniej w C#) to wygląda jakby to były normalne kontrolki, albo chociaż graficzne elementy rysowywane za pomocą funkcji odrysowywującej kontrolki. Ale tak naprawdę to trudno to stwierdzić - trzeba by było chyba napisać list do Billa i się spytać ;-).
  16. Nie jestem pewien czy dobrze zrozumiałem Twój problem. Jeżeli chodziło Ci o maksymalizację okna-dziecka w okienku MDI to służy do tego komunikat WM_MDIMAXIMIZE. A tak off-topic jeszcze to nie skarżcie się, że nikt nie odpowiedział na Wasz post (zwłaszcza jeżeli wisi on dopiero 8 godzin) - nie każdy odwiedza forum regularnie/ma stału dostęp do netu. Czasmi też wina może leżeć po stronie źle sformułowanego pytania, więc jeżeli od dłuższego czasu nikt nie odpowiada, a bardzo zależy wam na odpowiedzi spróbójcie je przeformułować - uczynić bardziej zrozumiałym.
  17. Aspect

    libxml2

    Zdaje się, że nie masz pliku parser.h i calego katalogu libxml w katalogu, w którym Visual przechowuje pliki nagłówkowe. Znajdź sobie taki katalog (u mnie jest to: <Katalog Visuala>\VC98\Include) i skopiuj tam libxml razem z zawartośćią.
  18. Funkcje, których używasz oprócz plików wyszukują również katalogi. Pojedyncza kropka oznacza bieżący katalog, dwie kropki - katalog nadrzędny. Jeżeli do wyszukiwania używasz ciągu "c:\\*.*", to funcja FindFirstFile zwraca Ci pewnie najpierw bięrzący katalog. Spróbój wpisać wyniki w pętli do ListBoxa - napewno wyświetli Ci się więcej plików.
  19. Aspect

    Link do e-mail'a lub url

    Jeżeli chodzi o otwieranie okna przeglądarki lub domyślnego klienta poczty, to jest to opisane na stronie w dziale FAQ. Jeżeli chodzi o link, to albo musisz sobie taką kontrolkę sam napisać, albo znależć w internecie, gdyż nie jest to standardowa kontrolka Windows.
  20. Aspect

    Klikanie

    A może wystarczy wysłać komunikat o kliknięciu do okna wyświetlającego html?
  21. Różne fajne operacje na stringach będących ścieżkami do pliku oferuje biblioteka Shlwapi.dll. Można je łatwo znależć w MSDNie, gdyż zaczynają się "prefiksem" Path. Na przykład funkcja: BOOL PathRemoveFileSpec( LPTSTR pszPath ); która jest odpowiedzią na Twój post.
  22. Aspect

    Blad

    U mnie z czasem wygląda następująco: Dni powszednie: 8:30 - 17:00 pracuję (baaardzo ograniczonty dostęp do netu - znaczy pracować właśnie muszę), 17:00 - 00:00 jestem w domu, w Warszawie (mam kompa, ale nie mam netu, no chyba, że do Twardego będę wpadał) Weekendy: Jestem w domu, w Łodzi (mam net ale nie mam kompa ;-), nie no tak serio to mam, ale p75) W czasie wolnym od pracy teoretycznie powinienem się doszkalać. Poza tym, dobrze by było gdybym pisał pracę magisterską, i jeszcze taki projekt jeden ze szkoły. W związku z powyższym chyba nie będę miał czasu na jednoczesne pisanie kodu i zarządzanie projektem, więc będę musiał z czegoś zrezygnować (osobiście wolałbym zostawić sobie samo projektowanie, ale jak ktoś jednak chciałby wskoczyć na miejsce organizatora, to nie widzę przeszkód). Napiszcie wszyscy dokładnie ile macie czasu, od kiedy i w jakich przedziałach. Przypomnijcie mi również, kto już skończył swoją część projektu. Mam nadzieję, że uda się nam osiągnąć zamierzone cele mimo przeciwności losu (bradziej pasuje chyba "przeciwności czasu").
  23. Każdemu przyciskowi musisz nadać styl TBSTYLE_AUTOSIZE.
  24. Aspect

    UserKontrol?

    Nie musi umieszczć poza. Wystarczy jak przycisk będzie się stykał z krawędzią okna, albo jak przycisk będzie trochę dalej ale akurat będzie dużo obliczeń i komunikaty będą wysyłane rzadziej. Z resztą tak samo dzieje się jak przysłonisz przycisk innym oknem. Poza tym wykonaj sobie jeszcze taki eksperyment: Zrób sobie przycisk który nic nie otwiera (powiedzmy niech zmienia tekst okna). Najedź na niego, naciśnij klawisz myszy i puść bez poruszania myszką.
  25. Aspect

    Duzy problem ! Serio

    Xantos ma rację. Jego odpowiedź całkowicie rozwiąże problem (-Wno-deprecated to tylko zignorowanie warninga).
×
×
  • Utwórz nowe...