Skocz do zawartości

Burn

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Burn

  1. Witam! Wielkość pliku możesz pobrać za pomocą funkcji GetFileSize parametry sprawdź w helpie bo niepamętam a nie mam w tej chwili czasu szukać. Wiem że pierwszym parametrem jest uchwyt pliku który możesz uzyskać otwierając plik za pomocą funkcji CreateFile. Innym sposobem na pobranie wielkości pliku jest użycie funkcji FindFirstFile w której jako pierwszy parametr podajesz nazwę pliku a jako drugi wskaźnik na strukturę WIN32_FIND_DATA w której jedną ze zwracanych informacji o pliku jest własnie jego wielkość. Gdyby jeszcze coś było niejasne to napisz. Pozdrowienia
  2. Witam! Książka która Cię interesuje dostępna jest w wersji elektronicznej (niestety po angielsku) pod adresem: https://win32asm.pl/pliki/teksty/api/petzoldi.rar Więc możesz sam ocenić czy warto wydać tyle kasy. Książka zawiera przykłady zastsowania WinApi. Moim zdaniem jest to jedna z lepszych książek na temat programowania jakie widziałem. Pozdrowienia
  3. Witam! Oczywiście to co napisał codeguy oczywiście działa, tylko jedna rzecz mnie zastanawia po co za każdym wywoaniem komunikatu WM_CTLCOLOREDIT wywoływać CreateSolidBrush ? Ja proponuję to zrobić tylko przy tworzeniu okna tak jak to opisałem wyżej. Chyba że mamy zamiar zmieniać klor kontrolki w trakcie działania programu (gdy okno na którym jest kontrolka w omawianym przypadku edit jest otwarte) to wtedy troche inna bajka. W każdym razie korzystając z tego co napisaliśmy powinieneś sobie poradzić bez problemu. Gdyby coś było jednak niejasne to pisz na forum albo GG: 5726447 jednak tak jak pisałem nie programuje w C wiec niestety nie moge podać Ci gotowego kodu w tym języku. Proszę o opinie na temat czy warto wywoływać CreateSolidBrush przy każdym wywołaniu funkcji WM_CTLCOLOREDIT ponieważ ja tego unikam ale nie jestem do końca przekonany czy słusznie. Pozdrowienia
  4. Witam! Aby zmienić kolor tła kontrolki EDIT trzeba samodzielnie obsłużyć komunikat WM_CTLCOLOREDIT To masz przykład ale w MASM ponieważ ja nie piszę w C++ i mógłbym coś pomylić w tłumaczeniu. .data hBrush dd ? .code WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM .IF uMsg==WM_CREATE ...... invoke CreateSolidBrush, 000000FFh ;Na przykład czerwone tło mov hBrush, eax ....... .ELSEIF uMsg==WM_DESTROY ....... invoke DeleteObject, hBrush ....... .ELSEIF uMsg==WM_CTLCOLOREDIT ....... invoke SetTextColor,wParam, 0000FFFFh ;Na przykład żółty tekst invoke SetBkColor,wParam,000000FFh ;Na przykład czerwone tło pod tekstem mov eax, hBrush ret .ELSEIF uMsg==WM_COMMAND ....... .ENDIF ....... WndProc endp Mam nadzieję że ten przykład Ci pomoże. A może znajdzie sie ktoś kto Ci to przetłumaczy na C++. Generalnie chodzi o to że przy tworzeniu okna musisz sobie utwożyć Brush o określonym kolorze i zachować jego uchwyt w zmiennej. Póżniej podczas obsługi komunikatu WM_CTLCOLOREDIT możesz zmienić kolor tekstu (SetTextColor) i kolor tła pod tekstem (SetBkColor). Aby zmienić kolor tła całego EDIT-a trzeva zwrócić uchwyt utworzonego pędzla (hBrush) . Oczywiście przy niszczeniu okna trzeba ten uchwyt zwolnić (DeleteObject) Mam nadzieje że to co napisałem jest choć cześciowo zrozumiałe :D Dodam jescze że może być kłopot z samodzielną obsługą komunikatu WM_PAINT przynajmniej o ile dobrze pamientam miałem z tym problemy gdy samodzielnie obsługiwałem komunkat WM_CTLCOLORSTATIC nie wiem na 100% jak przy editach ale ostrzegam. Sprawdź sam. Niestety nie znam innego być może lepszego i prostrzego sposobu :( Pozdrowienia
  5. Burn

    LoadIcon

    Witam Oczywiście one_eddie ma rację wiec poprawny kodzik wygląda tak: LoadImage(NULL, "Nazwa Pliku Ikony", IMAGE_ICON, NULL, NULL, LR_LOADFROMFILE | LR_DEFAULTSIZE) Pomyliłem operatory ale tak jak pisałem nie znam dobrze tego języka (jak widać nawet podstaw) :( Dziekuję za zwrócenie uwagi. Mam nadzieję że wszyscy zainteresowani wybaczą mi ten błąd. Pozdrowienia kAzek
  6. Burn

    LoadIcon

    Witam! Do załadowania ikony z pliku służy funkcja LoadImage (możesz nią ładować też kursory i bitmapy) Ja używam MASM-a wiec mogłem coś sknocić w tłumaczeniu na C++ ale napewno jest to ta funkcja szczególy dotyczące parametrów znajdziesz w helpie LoadImage( 0, "Nazwa Pliku Ikony", IMAGE_ICON, 0, 0, LR_LOADFROMFILE || LR_DEFAULTSIZE) Pozdrowienia kAzek
  7. Witam! A czy nie zapomniałeś przypadkiem o dodaniu mudułu funkcji graficznych nie wiem jak to sie w C++ nazywa bo pisze w innych jezykach (Delphi, Assembler) ale na pewno cóś gdi chyba nawet gdi.h Pozdrowienia
×
×
  • Utwórz nowe...