SetDIBitsToDeviceの書き方について – プログラミング – Home

通知
すべてクリア

SetDIBitsToDeviceの書き方について


Tonny
 Tonny
(@Tonny)
ゲスト
結合: 22年前
投稿: 32
Topic starter  

こんにちは。SetDIBitsToDeviceの書き方について質問があります。

BOOL CmyImage::Draw(HDC hDC, RECT* toRect,POINT* offset)
{
if (m_hDIB == NULL || toRect == 0 )
return FALSE;
if(offset != 0 )
return ::SetDIBitsToDevice(hDC,toRect->left,toRect->top,
RECTWIDTH(toRect), RECTHEIGHT(toRect),
offset->x,
          m_height - toRect->top - RECTHEIGHT(toRect) - offset-
>y,//YSrc
0,m_height,
m_pBits, m_pInfo, DIB_RGB_COLORS);
else
{
int lo = m_height - RECTHEIGHT(toRect) ;
return ::SetDIBitsToDevice(hDC,toRect->left,toRect->top,
RECTWIDTH(toRect), RECTHEIGHT(toRect),
0,lo, // XSrc,YSrc
0,m_height,
m_pBits, m_pInfo, DIB_RGB_COLORS);
}
}
上のような関数を作り、一応思った通りの動作をしているのですが、YSrcが
マイナスになる事もあり、それがいけないことかどうかわかりません。
このままでいいのでしょうか。普通どのような書き方をするのでしょうか。


引用解決済
トピックタグ
Tonny
 Tonny
(@Tonny)
ゲスト
結合: 22年前
投稿: 32
Topic starter  

要はSetDIBitsToDeviceの第6、7引数の

XSrc DIB の左下隅の x 座標を論理単位で指定します。
YSrc DIB の左下隅の y 座標を論理単位で指定します。

の値がマイナスでも問題ないかどうか知りたいのです。

私の環境(win2000 VC++6.0)では問題なく動いているようなのですが。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました