Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2012/01/17

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 から画像サイズの取得

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。