透過ウィンドウを作成したいのですが
クライアント領域部分だけを透過ウィンドウにしてタイトルバーなどの枠はそのまま残したいです
既存スレッドにありました以下のサンプルプログラムでは
ボーダーレスウィンドウのようにタイトルバーなどが消えてしまっているのですが
タイトルバーなどは自作する必要があるのでしょうか?
既存スレッドにありましたサンプルプログラム
↓
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int GrHandle ;
int Screen ;
int SoftImage ;
int AlphaAdd ;
int Alpha ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// 透過ウインドウ設定
SetUseBackBufferTransColorFlag( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 描画対象にできるアルファチャンネル付き画面を作成
Screen = MakeScreen( 640, 480, TRUE ) ;
// 画面取り込み用のソフトウエア用画像を作成
SoftImage = MakeARGB8ColorSoftImage( 640, 480 ) ;
// 画像を読み込む際にアルファ値をRGB値に乗算するように設定する
SetUsePremulAlphaConvertLoad( TRUE ) ;
// 画像の読み込み
GrHandle = LoadGraph( "Test1.bmp" );
// 描画先を描画対象にできるアルファチャンネル付き画面にする
SetDrawScreen( Screen );
// メインループ
AlphaAdd = -8 ;
Alpha = 255 ;
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
// 画面をクリア
ClearDrawScreen() ;
// アルファ値の変更
Alpha += AlphaAdd ;
if( Alpha <= 0 )
{
Alpha = 0 ;
AlphaAdd = 8 ;
}
else
if( Alpha >= 255 )
{
Alpha = 255 ;
AlphaAdd = -8 ;
}
// 描画ブレンドモードを乗算済みアルファにセット
SetDrawBlendMode( DX_BLENDMODE_PMA_ALPHA, Alpha ) ;
// 画像を描画
DrawGraph( 0, 0, GrHandle, TRUE ) ;
// 描画先の画像をソフトイメージに取得する
GetDrawScreenSoftImage( 0, 0, 640, 480, SoftImage ) ;
// 取り込んだソフトイメージを使用して透過ウインドウの状態を更新する
UpdateLayerdWindowForPremultipliedAlphaSoftImage( SoftImage ) ;
// 少し待つ
Sleep( 12 ) ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}