VCでビットマップを拡大表示するツールをつくっていたのですが、
2000/XPでは表示できたのが、98では表示されず真っ白になってしまいました。
ただ、表示はされていないものの、拡大表示されている白の画面の座標を指定
して再表示をおこなってみると、表示されているので、表示はうまくいってる
みたいなのですが。。。
ちなみに白画面になる場合の戻り値は0で失敗していました。
98でうまく拡大表示する方法はないのでしょうか?
GetLastErrorをStretchBlt後に取得すると、「パラメータが違います」とい
うエラーがでてました。
ただ、他の小さな画像ではこのエラーがでていても拡大表示できていたのでき
にしなかったのですが、やはりこのせいなのでしょうか?
以下ソース一部抜粋
m_hDCMem = CreateCompatibleDC(hDC);
m_hPrevBitmap = (HBITMAP)::SelectObject(m_hDCMem , m_hBitmap);
if(!::SetStretchBltMode(hDC , HALFTONE)){
return FALSE;
}
blnResult = ::StretchBlt(hDC , 0 , 0, nWidth , nHeight ,
m_hDCMem , 0 , 0 , intwidth , intheight , SRCCOPY);
SetStretchBltModeの引数に「HALFTONE」を渡しているからダメなんではないでしょうか。
# Windows 95/98 では、この値はサポートされていません。
詳細
http://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_setstretchbltmode.htm