2

MFCコードでCImageからCBitmapを取得する方法を知りたいです。

問題は、MSDNがCImage::m_hBitmapを使用してハンドルからCBitmapを生成するように指示していることです。ただし、残念ながら、CImage::m_hBitmapはCImage専用です。何か問題がありますか?

MSDNからのコードの抜粋:

CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image.m_hBitmap);

ありがとう!

4

1 に答える 1

4

m_hBitmapからハンドルを取得するには、CImageオブジェクトを直接使用します。MSDNのオンラインヘルプが正しく更新されていないようです。

MFC開発者はオペレーターHBITMAPを追加したため、CImageからHBITMAPへの変換はユーザーの介入なしで機能します。

ヘッダーatlimage.hのm_hBitmapへのアクセスを提供するインラインコード:

inline CImage::operator HBITMAP() const throw()
{
  return (m_hBitmap);
}

コードを機能させるには、imge.m_hBitmapを画像のみに置き換える必要があります。

CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image);

それでおしまい。

編集:私も別の解決策を見つけました、ここを見てください

于 2013-03-03T06:20:39.677 に答える