ホーム » 2012 » 1月 » 17

日別アーカイブ: 2012/01/17

2012年1月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 99,424 アクセス


HBITMAP から画像サイズ取得

昨日,クリップボードからの取得で画像サイズを求める方法がわからなかった.

  HBITMAP	hbm = (HBITMAP)::GetClipboardData(CF_BITMAP) ;
  if (hbm != NULL) {
    CSize	bmpSize(10,10) ;
    {
      BITMAP		bm ;
      ::ZeroMemory(&bm,sizeof(BITMAP)) ;
      if (::GetObject(hbm, sizeof(BITMAP),&bm)!=0) {
        bmpSize.cx = bm.bmWidth ;
        bmpSize.cy = bm.bmHeight;
        }
      }
    ...
    }

CBitmap で保持している場合は,

  CBitmap	bitmap ;
  if (bitmap.LoadBitmap(bmp_ID)) {
    BITMAP	bm ;
    bitmap.GetBitmap(&bm) ;
    CRect		rect = CRect(0,0,bm.bmWidth,bm.bmHeight) ;
    ...
    }

HENHMETAFILE では,

  HENHMETAFILE	hemf = (HENHMETAFILE)::GetClipboardData(CF_ENHMETAFILE) ;
  if (hemf !=NULL) {
    ENHMETAHEADER	emh ;
    ZeroMemory(&emh,sizeof(ENHMETAHEADER)) ;
    emh.nSize = sizeof(ENHMETAHEADER) ;
    if (::GetEnhMetaFileHeader(hemf,sizeof(emh),&emh) != 0) {
      CRect	rectB ;
      rectB.top	= emh.rclBounds.top ;
      rectB.left	= emh.rclBounds.left ;
      rectB.right	= emh.rclBounds.right ;
      rectB.bottom= emh.rclBounds.bottom ;
      CRect	rectF ;
      rectF.top	= emh.rclFrame .top ;
      rectF.left	= emh.rclFrame .left ;
      rectF.right	= emh.rclFrame .right ;
      rectF.bottom= emh.rclFrame .bottom ;
      }
    }

HBITMAP から画像サイズの取得

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.