Autor Wątek: [WinApi] Okno wyłącznie z obszarem klienta/Bitmapy/Regiony/Internet/InneAplikacj  (Przeczytany 3435 razy)

Offline Colder

  • Użytkownik

# Styczeń 08, 2011, 18:17:04
Witajcie!
Jak widać mój temat podzieliłem na 5 części. Zacznijmy więc!

Okno wyłącznie z obszarem klienta
Jaki parametr musi mieć styl okna, aby nie posiadał on paska, obramowanie itd, sam obszar klienta?

Bitmapy
Chciałbym, aby moje okno nie posiadało zdolności zmiany wielkości, a jego tło wypełniłbym grafiką o takiej samej rozdzielczości jak wielkość okna. I najprawdopodobniej poradzę sobie sam, pytanie brzmi, jak mogę "wczytać" bitmapę do zasobów aplikacji?

Regiony
Chciałem z regionu zrobić przyciski, w tym celu stworzyłbym go, wypełnił bitmapą, i potem zrobił w procedurze zdarzeniowej, że gdy najedziemy myszką na region to jego wypełnienie - bitmapa zmieni się na inną, a gdy klikniemy to coś się stanie. Moimi pytaniami więc są:
Jak wypełnić region bitmapą?
Czy mogę sprawdzić funkcją dla danej pozycji myszki region? Czy muszę zapisać wartości regionu w zmiennych i je porównywać z aktualną pozycją myszki?

Internet
Po przeczytaniu poradnika nadal brakuje mi informacji o internecie, coś w stylu jak połączyć się z serwerem, pobrać z bazy danych jakiś tekst czy obrazek itp? Poszukuje więc poradnika o takiej tematyce.

Inne Aplikację
Swojego czasu przeczytałem o funkcji, bodajże "FindWindow", jednak brakuje mi większego zasobu wiedzy. Jak wniknąć w procedurę zdarzeniową innej aplikacji? Jak cheaty pobierają i modyfikują wartości zmiennych? Poszukuje więc poradnika o takiej tematyce.

Niezły post ;)
Troszeczkę się boję, że przeholowałem i nie otrzymam pomocy :/
Mam nadzieję, że nie będzie tak źle, więc:
Pozdrawiam i proszę o pomoc,
Colder.


Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Karol

  • Użytkownik

# Styczeń 08, 2011, 18:33:40
1. Postudiuj MSDN odnośnie CreateWindow i związanych z tym struktur.
2. Dodać do zasobów? OBRAZ BITMAP "grafika.bmp", nie wiem jak to w C++, ale w Delphi tworzy się plik .rc, kompiluje i utworzony plik zasobów dodaje do źródeł, jeszcze łatwiej to wstawić TImage na okno :D
3. WinAPI udostępnia funkcję PtInRgn (czy jakoś tak), ale łatwiej jest utworzyć kontrolkę i samemu ją rysować.
4. Zbyt szerokie pytanie, aby odpowiedzieć zwięzle.
5. Modyfikacja (odczyt/zapis) pamięci procesu, proces odszukuje się poprzez FindWindow. Ponownie odsyłam do MSDN, tam jest wszystko co potrzebne.

Offline Colder

  • Użytkownik

# Styczeń 08, 2011, 18:42:09
5. Ale MSDN jest po angielsku :( Nie ma jakiegoś poradnika w naszym kochanym ojczystym języku? :P

4. Ale ja w cale nie proszę o odpowiedź zwięzła? Może jakiś linczek do poradnika?

3. Samemu to ja potrafię narysować kwadrat wypełniony teksturą lub granitem :P Kurcze o tych kontrolkach to dużo słyszałem, ale co to właściwie jest i jak działa to nie mam pojęcia... :/

1. No popatrzę, patrzę, obcykałem klawisz F1 w Visualu więc coś tam próbuję :P

Offline Adam7

  • Użytkownik
    • warsztat.gd

# Styczeń 08, 2011, 18:46:13
Co do pierwszego to daj WS_POPUP

Cytuj
jednak brakuje mi większego zasobu wiedzy.
Więc się poducz :P
« Ostatnia zmiana: Styczeń 08, 2011, 18:49:10 wysłana przez Adam7 »

Offline Colder

  • Użytkownik

# Styczeń 08, 2011, 18:50:21
Dałem WS_POPUP, jednak po tej operacji okno się nie pokazało :/

"Więc się poducz :P"
No ale nie wiem który z tej obszernej listy poradników mówi o takich sprawach :(

Offline hfjh

  • Użytkownik

# Styczeń 08, 2011, 19:10:04
Dokumentacja mówi o takich sprawach.

Offline Adam7

  • Użytkownik
    • warsztat.gd

# Styczeń 08, 2011, 21:56:43
Kod: (cpp) [Zaznacz]
CreateWindow("nazwa klasy", "caption", WS_POPUP, 0, 0, width, height, NULL, NULL, NULL, NULL);
ShowWindow(hWnd, SW_NORMAL);
UpdateWindow(hWnd);
Może to pomoże, a jak nie to jest dokumentacja (może i jest obszerna ale po paru dniach jej czytania albo się zniechęcisz lub poznasz większość funkcji i samą koncepcję tworzenia okien)

PS. A co tam masz poczytaj to (może i ma parę błędów ale jest po polsku i w miarę proste)
http://dl.dropbox.com/u/12186845/plik%20pomocy.zip
« Ostatnia zmiana: Styczeń 08, 2011, 21:58:36 wysłana przez Adam7 »

Offline Colder

  • Użytkownik

# Styczeń 08, 2011, 23:44:59
HWND hOkno;
hOkno = CreateWindowEx(
NULL, // rozszerzony styl
g_strKlasaOkna.c_str(), // klasa okna
L"Evolution Role Play", // tekst na p. tytułu
WS_POPUP, // styl okna
CW_USEDEFAULT, // współrzędna X
CW_USEDEFAULT, // współrzędna Y
CW_USEDEFAULT, // szerokość
CW_USEDEFAULT, // wysokość
NULL, // okno nadrzędne
NULL, // menu
hInstance, // instancjs aplikacji
NULL); // dodatkowe dane
// pokazujemy nasze okno
ShowWindow(hOkno, SW_NORMAL);
UpdateWindow(hOkno);

Mam tak, i nie działa ;(


@PS:
Dzięki!
Pewnie to coś zajefajnego, bo MSDN jest po ENG czyli blee :P
Ale nie umiem tego odczytać :/
Jak włączam plik:
API32_PL.hlp
To mi wyskakuje normalny plik z pomocą Windows7.
Jak to nareperować ? :(

Przeczytałem właśnie że plik ten nie działa w Win7 :/
Ehh...


Edit2:

Mam tak:
hOkno = CreateWindowEx(
NULL, // rozszerzony styl
g_strKlasaOkna.c_str(), // klasa okna
L"Evolution Role Play", // tekst na p. tytułu
WS_POPUP, // styl okna
CW_USEDEFAULT, // współrzędna X
CW_USEDEFAULT, // współrzędna Y
CW_USEDEFAULT, // szerokość
CW_USEDEFAULT, // wysokość
NULL, // okno nadrzędne
NULL, // menu
hInstance, // instancjs aplikacji
NULL); // dodatkowe dane
// pokazujemy nasze okno
ShowWindow(hOkno, SW_NORMAL);
Nie działa, zamienię SW_NORMAL na SW_MAXIMIZE - działa :O.
No straszne!
Moje pierwsze tragiczne spotkanie z C++ mam więc za sobą :P
« Ostatnia zmiana: Styczeń 09, 2011, 01:27:36 wysłana przez Colder »

Offline hashedone

  • Użytkownik

# Styczeń 09, 2011, 19:07:54
Pewnie to coś zajefajnego, bo MSDN jest po ENG czyli blee :P
I've got some advice for you - either give up programming or study english. Tertium non datur.

Offline Colder

  • Użytkownik

# Styczeń 10, 2011, 21:14:43
No dobrze, dzięki waszym wskazówkom i pomocy udało mnie się lekko załatać swój brak wiedzy ;)

Zostały mi jeszcze niestety 2 kwestie, mianowicie paragraf Inne Aplikacje, bardzo tego potrzebuje, szczególnie na wnikaniu w procedurę zdarzeniową innego okna oraz coś o modyfikacji zmiennych innego okna, jak np robią to cheaty?

Mam jeszcze jedną sprawą, chce aby mógł panel klienta miał rozdzielczość 640x400, jednak tworząc okno podaję wymiary całego okna, czy istnieję dla tego jakaś zależność? Czy paski w win 7, XP itd są takiej samej wielkości?

Pozdrawiam,
Colder.
« Ostatnia zmiana: Styczeń 10, 2011, 22:01:43 wysłana przez Colder »

Offline Xirdus

  • Redaktor

# Styczeń 10, 2011, 21:42:20
Mam jeszcze jedną sprawą, chce aby mógł panel klienta miał rozdzielczość 640x400, jednak tworząc okno podaję wymiary całego okna, czy istnieję dla tego jakaś zależność? Czy paski w win 7, XP itd są takiej samej wielkości?
Ramka się nie liczy.

Offline radsun

  • Użytkownik
    • CaRpg

# Styczeń 11, 2011, 10:06:56
Mam jeszcze jedną sprawą, chce aby mógł panel klienta miał rozdzielczość 640x400, jednak tworząc okno podaję wymiary całego okna, czy istnieję dla tego jakaś zależność? Czy paski w win 7, XP itd są takiej samej wielkości?
Masz od tego funkcje AdjustWindowRect.

Offline Colder

  • Użytkownik

# Styczeń 11, 2011, 19:57:44
Dobra, dziękuję, już jest coraz lepiej :P

Potrzebuje jeszcze takiej informacji, jak wgrać do "wnętrza aplikacji" ikonę i bitmapę w programie Visual C++ 2010?

Dzięki,
Colder.

Offline Xirdus

  • Redaktor

# Styczeń 11, 2011, 21:32:01
Tworzysz plik zasobów. Poszukaj w Google: resource file, windows resources, pliki zasobow, pliki rc, rc files itp.

Offline Colder

  • Użytkownik

# Styczeń 11, 2011, 22:51:10
Mnie to C++ dobije :/
Zrobiłem niby plik zasobów, wgrałem, mam identyfikatory niby, ale po dodaniu include wywala 40 errorów :(
#include "blabla.rc"
Tak dodaje.

Raczej się nie opłaca wstawiać tych błędów wiec sobie odpuszczę,
proszę o pomoc,
Colder.