いまDirectXとWindowsAPIを使ってスクリーンセーバーを作っています。
デスクトップの画像を表示しながら、何かをする予定です。
イメージとしてはVISTAにインストールされているバブルのスクリーンセーバーです。
それでデスクトップの画像を取得する時点で苦戦しています。
WindowsAPIではデスクトップ画像を取得することはできました。
//デスクトップの画面を取得する関数
//取得したHDCが戻り値
HDC GetDeskTop(){
HDC Deskhdc;
HBITMAP DeskBmp;
HDC DeskBmphdc;
Deskhdc = CreateDCA("DISPLAY",NULL,NULL,NULL);
DeskBmp = CreateCompatibleBitmap(Deskhdc,wx,wy);
DeskBmphdc = CreateCompatibleDC(Deskhdc);
SelectObject(DeskBmphdc, DeskBmp);
ReleaseDC(NULL,Deskhdc);
DeleteObject(DeskBmp);
return DeskBmphdc;
}
これで取得したHDCを、LPDIRECT3DTEXTURE9などのDirectXで使えるように変換する方法はありますか?もしくは、DirectXの関数でデスクトップの画像を取得する関数はありますか?
皆様、どうぞよろしくお願いします。
使用環境
WindowsXP
VC++2005
DirectX SDK(March 2008)