色々遊ぶ





Windowを常に最前面に表示する


SYNTAX DESC オーバーラップウィンドウ ポップアップウィンドウ 子ウィンドウのいずれかを拡張スタイル付きで作成します 拡張スタイルが指定できること以外は CreateWindow 関数と同じ
HWND hWnd = CreateWindowEx( // Style に "WS_EX_TOPMOST" を指定 WS_EX_TOPMOST, // 後は同じ ...



透明なWindow.をつくる


typedef BOOL __stdcall SETLAYER( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags ); SETLAYER *SetLayeredWindowAttributes; HINSTANCE hDllInst; // USER32.DLLからWindows2000で拡張された関数を取得する hDllInst = LoadLibrary("user32.dll"); if( hDllInst == NULL ){ MessageBox( NULL, "USER32.DLL の読み込みエラー","Error", MB_OK ); return( FALSE ); } SetLayeredWindowAttributes = (SETLAYER *)GetProcAddress( hDllInst, "SetLayeredWindowAttributes" ); if( SetLayeredWindowAttributes == NULL ){ MessageBox( NULL, "SetLayeredWindowAttributes()関数のポインタが取得できませんでした。 Windows2000ではない可能性があります","Error", MB_OK ); return( FALSE ); } // 作成した Window を透明にする HWND hWnd = CreateWindow( ... ); long sty = GetWindowLong( hWnd, GWL_EXSTYLE ); sty |= 0x00080000; SetWindowLong( hWnd, GWL_EXSTYLE, sty ); SetLayeredWindowAttributes( hWnd, 0, 128, 2 );