Skocz do zawartości

Barnaba

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Barnaba's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Dobra, już zrobiłem. Cała sztuka to odpowiednio zainicjalizować (a nie zainicjować jak to większość ludzi pisze :D ) odpowiednio pole struktry WNDCLASS.cbWndExtra, które określa ilość dodatkowaej pamiętci dla każdej kontrolki tej klasy. I tak, jak ja potrzebowałem 3 zmiennych 16 biotwych czyli 2 bajtowych to wpisałem wartość 6 (w bajtach się podaje). Do tej pamięci dane zapisuje się unkcją SetWindowWord (jeżeli chcemy wartości 16 bitowe zapisać) lub SetWindowLong (32 biotwe).Funkcje wymagają podania indexu, a jest to nic innego jak numer bajta od którego należy zacząc zapisywać. I tak jeżeli chcemy zapisać wartość 32 bitową do tej pamięci to podajamy 0 (do 3 będzie zapisywał), 4 (do 7), 8 (do 11) i tak dalej. Oczywiście jeżeli zapisujemy liczbe 16 bitową wówczas mamy, 0 (do 1), 2 (do 3) i tak dalej. Wartości również pobiera się bardzo łatwo. Zapodam teraz jakiś przykład, bo chyba strasznie zamotałem ;). gdzieś tam przy tworzeniu klasy przypisujemy do cbWndExtra wartość 8 co wystarczy nam na 2 liczby 16 bitowe i jedną 32 bitową. ... wc.cbWndExtra = 8 .. POBIERANIE WARTOŚCI: WORD zmienna1 = GetWindowWord(hWnd,0); // 0 - 1 bajty DWORD zmienna2 = GetWindowLong(hWnd,2); // 2 - 5 bajty WORD zmienna3 = GetWindowWord(hWnd,6); // 6 - 7 bajty PRZYPISYWANIE: SetWindowWord(hWnd,0,zmienna1); SetWindowLong(hWnd,2,zmienna2); SetWindowWord(hWnd,6,zmienna3);
  2. Cześć. Mam problem. Mianowicie chodzi mi o to, że utworzyłem sobie własnie własną klasę okna i nie wiem gdzie poszczególne kontrolki tej klasy mogą przechowywać dane. Na stronce jest opis tworzenia własnych klas, i tam zapamiętywane są dwie zmienne za pomocą funkcji SetWindowLong. Pobiera się je tak: LONG data = GetWindowLong(hWnd,GWL_USERDATA); WORD zmienna1 = LOWORD(data); WORD zmienna2 = HIWORD(data); a zapisuje tak: SetWindowLong(hWnd,GWL_USERDATA,MAKELONG(zmienna1,zmienna2)); I wszyskto pięknie, ale co w przypadku gdy kontrolka ma do zapamiętania więcej niż dwie zmienne? Zmienne których używam to 5 zmiennych typu WORD tak więc tylko 2 z nich można wpakować do młodszego i starszego słowa zmiennej z którą odpowiada GWL_USERDATA. Proszę o szybką pomoc. Z góry dzięki.
  3. Cześć wszystkim. Mam pewne pytania. Jak (korzystając z WinAPI) można uzyskać ścieżkę do pliku (bez nazwy pliku czyli np. "c:\windows\") znając ścieżkę wraz z nazwą pliku (np. "c:\windows\win.ini"). I jeszcze druga sprawa. Jak uzyskać ścieżkę do programu (tego który piszę).
×
×
  • Utwórz nowe...