火曜日, 11月 06, 2007

画像を壁紙に設定する

コードを直接ネットに載せると、「恥をさらすようだ」という意見が(笑)あるが、くだらぬことに時間を割きたくないプログラマのために、画像を壁紙にするコードを載せておく。

あまり誇れるコードでもない、というのは、情報がなくてBMPの一時ファイルにする方法しか見つからなかったせいで、ある画像を画面の大きさにして壁紙に設定するだけのコードである。

なにかの役に立つかどうか分からないし、「いちおう」などと照れる必要もないだろうが、以下がそのコードである。

void CMyView::Setasdesktopbackground()
{
CImage image;
int screenWidth=::GetSystemMetrics(SM_CXSCREEN);
int screenHeight=::GetSystemMetrics(SM_CYSCREEN);
int bpp=m_pImage->GetBPP();
if(image.Create(screenWidth,screenHeight,bpp))
{
HDC hDC=image.GetDC();
SetStretchBltMode(hDC,HALFTONE);
m_pImage->Draw(hDC,0,0,screenWidth,screenHeight);
CString fileName=L"c:\\Windows\\Web\\Wallpaper\\background.bmp";
HRESULT res=image.Save(fileName);
image.ReleaseDC();
if(!FAILED(res))
SystemParametersInfo(SPI_SETDESKWALLPAPER,NULL,
(PVOID)fileName.GetBuffer(),SPIF_UPDATEINIFILE);
}
}

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...