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

Allegro-Przeźroczystość programu.

Ostatnio zmodyfikowano 2010-02-18 16:08
Autor Wiadomość
Elaine
» 2010-02-17 21:42:34
Facet, ja nigdy z tobą nie rozmawiałem, nie wiem, co sobie uroiłeś.
P-13967
DejaVu
» 2010-02-18 03:11:17
Fajnie, że rozwiązałeś problem ale mógłbyś go przedstawić na forum.
P-13972
szyx_yankez
Temat założony przez niniejszego użytkownika
» 2010-02-18 06:43:20
F.a.l masz rację.Pomyliłem Cię z kimś innym.Sorry.

A co do problemu.
C/C++
#define WS_EX_LAYERED 0x00080000
#include <allegro.h>
#include <winalleg.h>
#include <windows.h>                                    //Dołanczamy bibliotekę allegro.






int WINAPI WinMain( HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil )
{
   
   
   
   
    allegro_init();
    int width;
    int height;
    get_desktop_resolution( & width, & height );
    height -= 20;
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, width, height, 0, 0 );
    set_color_depth( desktop_color_depth() );
    install_keyboard();
   
   
    COLORREF cr;
    BYTE bAlpha;
    DWORD dwFlags;
   
    #define LWA_COLORKEY 1
    #define LWA_ALPHA 2
    typedef BOOL( WINAPI * lpfn )( HWND hWnd, COLORREF cr, BYTE bAlpha, DWORD dwFlags );
   
    lpfn g_pSetLayeredWindowAttributes;
   
    //definicje
    HMODULE hUser32;
   
    //część instrukcji switch
    HWND hWnd = win_get_window();
    WM_CREATE;
    if( WM_CREATE )
         hUser32 = GetModuleHandle( "USER32.DLL" );
   
    g_pSetLayeredWindowAttributes =( lpfn ) GetProcAddress( hUser32, "SetLayeredWindowAttributes" );
    if( g_pSetLayeredWindowAttributes == NULL )
         MessageBox( hWnd, "Przezroczystość nie jest dostępna w tej wersji Windowsa :(", "Niestety", MB_ICONEXCLAMATION );
   
    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, width, height, TRUE );
    SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
    SetWindowLongPtr( hWnd, GWL_EXSTYLE, GetWindowLongPtr( hWnd, GWL_EXSTYLE ) | WS_EX_LAYERED );
    MoveWindow( hWnd, 0, 20, 1280, 1024, TRUE );
    g_pSetLayeredWindowAttributes( hWnd, makecol( 255, 255, 255 ), 0, LWA_COLORKEY );
   
    while( !key[ KEY_ESC ] )
    {
       
       
    }
   
   
   
   
    allegro_exit();
    return 0;
   
}
P-13976
Elaine
» 2010-02-18 11:40:14
Weź nie sprawdzaj, czy WM_CREATE jest niezerowe. Na pewno nie jest - zerowe jest tylko WM_NULL.
P-13978
szyx_yankez
Temat założony przez niniejszego użytkownika
» 2010-02-18 16:08:17
Ok .Dzięki f.a.l.
P-13979
1 « 2 »
Poprzednia strona Strona 2 z 2