Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] obramowanie

Ostatnio zmodyfikowano 2009-11-28 12:23
Autor Wiadomość
ison
Temat założony przez niniejszego użytkownika
» 2009-11-28 12:06:55
funkcję RGB zamieniłem na makecol, tak jak się w allegro robi. bo RGP było niezdefiniowane.
wyskakują błędy:
`LWA_COLORKEY' undeclared (first use this function)
`SetLayeredWindowAttributes' undeclared (first use this function)
P-11855
ison
Temat założony przez niniejszego użytkownika
» 2009-11-28 12:10:37
znalazłem na jakiejś innej stronce, że żeby to działało to musisz powiedzieć kompilatorowi że masz starszy windows poprzez wklejenie
#define WINVER 0x0500

teraz już działa, tylko że:
a) znowu jest ramka
b) jak rysuję kwadrat 255,0,255 na ekranie to i tak nie jest przezroczysty

oto mój kod:

HWND hWnd = win_get_window();
SetWindowLongPtr(hWnd, GWL_EXSTYLE, GetWindowLongPtr(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
MoveWindow(hWnd, 0, 0, 1024,768, TRUE);
SetWindowPos(win_get_window(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
SetLayeredWindowAttributes(hWnd, makecol(255, 0, 255), 0, LWA_COLORKEY);

/edit
kod zmieniłem na

HWND hWnd = win_get_window();
SetWindowLongPtr(hWnd, GWL_STYLE, WS_POPUP | WS_VISIBLE);
SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
MoveWindow(hWnd, 0, 0, 1024,768, TRUE);
SetWindowPos(win_get_window(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
SetLayeredWindowAttributes(hWnd, makecol(255, 0, 255), 0, LWA_COLORKEY);

i ramki już nie ma tak jak powinno być, ale prostokąt 255,0,255 nadal nie jest przezroczysty
P-11856
Elaine
» 2009-11-28 12:15:15
C/C++
HWND hWnd = win_get_window();
SetWindowLongPtr( hWnd, GWL_STYLE, WS_POPUP | WS_VISIBLE );
SetWindowPos( hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED );
MoveWindow( hWnd, 0, 0, 1024, 768, TRUE );
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
SetWindowLongPtr( hWnd, GWL_EXSTYLE, GetWindowLongPtr( hWnd, GWL_EXSTYLE ) | WS_EX_LAYERED ); // <--- a to gdzie wciąłeś?
SetLayeredWindowAttributes( hWnd, makecol( 255, 0, 255 ), 0, LWA_COLORKEY );
P-11857
ison
Temat założony przez niniejszego użytkownika
» 2009-11-28 12:23:16
ramki nie ma, a różowy prostokąt nadal wyświetlany jest na aplikacji allegro :/
P-11858
1 2 « 3 »
Poprzednia strona Strona 3 z 3