掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UpdateLayeredWindowを使うには? (ID:17066)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
http://hitokuso.kicks-ass.org/progtips.html こちらのUpdateLayeredImageをDelphiで書き直してみました。 procedure TForm1.UpdateLayeredImage( _hwnd:HWND; hbmp:HBITMAP; x,y:integer); var hdcScreen:HDC; hdcMemory: HDC; rect: TRect; _pos: TPoint; szWindow: SIZE; bf: BLENDFUNCTION; ptSrc: TPoint; ret: LongBool; begin hdcScreen := GetDC( 0 ); hdcMemory := CreateCompatibleDC( hdcScreen ); SelectObject( hdcMemory, hbmp ); GetWindowRect( _hwnd, rect); _pos := Point(rect. Left, rect.Top); szWindow.cx := x; szWindow.cy := y; ptSrc := Point( 0, 0 ); with bf do begin BlendOp := AC_SRC_OVER; BlendFlags := 0; AlphaFormat := AC_SRC_ALPHA; SourceConstantAlpha := 255;//$FF; end; ret := UpdateLayeredWindow( _hwnd, hdcScreen, @_pos, @szWindow, hdcMemory, @ptSrc, 0, bf, ULW_ALPHA ); ShowMessage(SysErrorMessage(GetLastError)); DeleteDC( hdcMemory ); ReleaseDC( 0, hdcScreen ); end; しかし UpdateLayeredWindowでエラー「パラメータが間違っています」 https://www.petitmonte.com/bbs/answers?question_id=874 こちらの方と同じ症状です。 ・移植に失敗しているのか(上のソースがそもそも間違えているのか)、 ・テストに使っているBMPファイルがおかしいのか分かりません。 またそれにともなって同ページのCreateRGBBitmapにも挑戦してみたのですが HBITMAP hbmp = CreateDIBSection( dc, (BITMAPINFO*)&bh, DIB_RGB_COLORS, (void**)&bitptr, NULL, 0 ); ・この一行をどう書き換えれば良いのかも分からない次第です。 以上長くなりましたがよろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.