掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画像を重ねあわせするには? (ID:60660)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Toshi様、Ban様お返事ありがとうございます。 Toshi様 SetROP2()の使用方法を探してみたのですが、どのように使用すればよいのか 今ひとつわかりません(泣)私が間違っていたら申し訳ないのですが、 調べてみたところ、同じウィンドウ内での論理演算だと感じました。 もし違っていれば、少し詳しく教えてはくれないでしょうか? ちなみに、私もVC++ 6.0です。 Ban様 AlphaBlendの使用ですが、指定した画像すべてが透過処理されてしまい 上手く自分の思う処理ができませんでした。私の力不足なのか、そのような仕様 なのかは定かではありませんが。 あとID3DXSpliteというものはどのようなものなのでしょうか? google検索でもヒットしなかったので(汗) ↓にプログラムの一部を書いておきますのでお気づきになられましたら ご教授いただけますでしょうか? case WM_CREATE: //子ウィンドウ1 hMenu = GetMenu ( hWnd ); GetWinRect( hWnd, &wx, &wy ); hInstance = ((LPCREATESTRUCT ) lParam ) ->hInstance; InitApp( hInstance , ChdProc1 , "child1" ); hChdWnd1 = CreateWindow ( "child1" , "" , WS_CHILD | WS_BORDER | WS_VISIBLE | ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL | ES_AUTOVSCROLL , 0 , 0 , wx/2 , wy/2 , hWnd , (HMENU)ID_CHILD1 , hInstance , NULL ); hdc = GetDC(hChdWnd1); hBitmap1 = CreateCompatibleBitmap( hdc , wx , wy ); hBuffer1 = CreateCompatibleDC( hdc ); SelectObject( hBuffer1 , hBitmap1 ); SelectObject( hBuffer1 , GetStockObject(NULL_PEN) ); PatBlt ( hBuffer1 , 0 , 0 , wx , wy , WHITENESS ); ReleaseDC( hChdWnd1 , hdc ); この子ウィンドウ設定が1〜4ございます。 //子ウィンドウ4 -> プロシージャ LRESULT CALLBACK ChdProc4 ( HWND hChdWnd4, UINT msg, WPARAM wParam, LPARAM lParam ) { int id; HDC hdc; PAINTSTRUCT ps; switch ( msg ) { case WM_PAINT: hdc = BeginPaint ( hChdWnd4 , &ps ); TransparentBlt( hBuffer4 , 0 , 0 , wx , wy , hBuffer1 , 0 , 0 , wx , wy , RGB(255,255,255) ); TransparentBlt( hBuffer4 , 0 , 0 , wx , wy , hBuffer2 , 0 , 0 , wx , wy , RGB(255,255,255) ); TransparentBlt( hBuffer4 , 0 , 0 , wx , wy , hBuffer3 , 0 , 0 , wx , wy , RGB(255,255,255) ); BitBlt( hdc , 0 , 0 , wx , wy , hBuffer4 , 0 , 0 , SRCCOPY ); EndPaint ( hChdWnd4 , &ps ); break; これが重ねあわせる子ウィンドウの設定でございます。 部分的ですので理解できない部分があると思いますが よろしくお願いします。 長文失礼致しました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.