OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

GetGlyphOutlineについて

  • 暇なときにでも
  • 質問No.102267
  • 閲覧数370
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

はじめまして。
現在GetGlyphOutline(API関数)を使い、
文字のビットマップを取得しようとしています。
GGO_BITMAPを指定した、普通のビットマップの取得には成功したのですが、
GGO_GRAY8_BITMAPをしていすると、何も表示されなくなってしまいます。

dwRet = ::GetGlyphOutline(hDC,'A',GGO_GRAY8_BITMAP,&gm,0,NULL,&m2);

どこかGGO_BITMAPの時とは違う設定にしなければいけないのでしょうか?
ご回答よろしくお願いいたします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 44% (11/25)

GGO_GRAY8_BITMAP以外のパラメータは特に変更する必要はありません。
ビットマップの表示処理をどのように行われているのかわかりませんが、
そちらを見直されてはいかがでしょうか。
お礼コメント
micho

お礼率 100% (1/1)

早速のご回答ありがとうございました。
ビットマップの表示はBitBltを使用しているのですが、
BITMAP構造体のbm.bmWidthBytesに値を代入するところが一番
怪しいところだと思っています。

GetGlyphOutline 以下このように書いております。

hBitmap = BitmapFromBits(lpBuf,(WORD)gm.gmBlackBoxX,(WORD)gm.gmBlackBoxY);

hOldBmp = (HBITMAP)::SelectObject(hMemDC,hBitmap);

::BitBlt(hDC,10,10,gm.gmBlackBoxX,gm.gmBlackBoxY,hMemDC,0,0,SRCCOPY);

BitmapFromBitsのところでBITMAP構造体に値を代入しているのですが、
 bm.bmType= 0;
 bm.bmWidth= gm.gmBlackBoxX;
 bm.bmHeight= gm.gmBlackBoxY;
 bm.bmWidthBytes= ((gm.gmBlackBoxX + 31) >> 5) << 2;
 bm.bmPlanes= 1;
 bm.bmBitsPixel= 8;
 bm.bmBits= lpBits;

これだと何も表示されません。
たびたび済みませんが、助言の方よろしくお願いいたします。
投稿日時 - 2001-07-11 09:15:24
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ