問題タブ [cbitmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2939 参照

winapi - MFC を使用して ICON を BITMAP に正しく変換するにはどうすればよいですか?

別のアプリケーションのアイコンをロードしています

CBitmapこのアイコンからオブジェクトを作成するにはどうすればよいですか?

具体的には(dupの質問では実際には答えられません):

  • どのデバイス コンテキストですか?
  • 最後にCBitmap、アイコンを変換する関数よりも長く存続するオブジェクトが必要です。
  • すぐにクリーンアップする必要があるものと、手元に置いておく必要があるものは何ですか? ( DC, ...?)

これまでのコードは次のとおりです。

さて、このコードは機能しますが、理解できません:

  • が必要なCClientDC理由 (CDC のみを使用する場合、ビットマップは表示されないか、配置する場所に応じて白黒になります。)
  • (なぜ)そのdc.SelectObject( pOldBmp )線が必要なの?
  • なぜ私はしなければならないのCopyImageですか?(そうしないと、ビットマップが反転した色で描画されることがあります。)
  • このコードは何かリークしていませんか、それともすべてが適切にクリーンアップされていますか?

これも動作するように見える別のバージョンです:

0 投票する
1 に答える
5437 参照

c++ - CDC から CBitmap に画像を転送する

CDC から CBitmap に画像を転送するにはどうすればよいですか? 全体的な問題: CBitmap A に大きな画像があります。これには多数の CDC を使用できないため、この画像の一部をいくつかの CBitmap に転送して、ベクトルに格納する必要があります:)準備された CDC をサイクルに変換し (CBitmap A の必要な部分を取得)、それを CBitmap x に転送する必要があります。どうすればいいですか?

これが私のコードです:

// OK - ソース画像を取得しました

// ここに黒い四角があります! - 前のコードに問題がある

// そしてそれ以降の CBitmaps は黒い四角形です


解決策を見つけました!

CBitmap の解析とベクターの初期化

描く:

0 投票する
1 に答える
3581 参照

bitmap - CBitmap を .bmp ファイルに保存する

を使用してCBitmapオブジェクトを操作していCDCます。完成したら、ファイルに保存したいと思います。そのコードLINKを持つプロセスについて何かを見ました:

私の疑問は と についてBITMAPFILEHEADERですBITMAPINFOHEADERCBitmap指定されたorでそれらを埋めるにはどうすればよいCDCですか?

0 投票する
1 に答える
1372 参照

image-processing - CMFCToolBar で PNG 画像をボタン画像として追加する方法は?

CMFCToolBar のように思えます BITMAP イメージ (色深度は 24 です) のみをボタンに配置できます。この制限を取り除く方法。PNG も、色深度 32 (アルファ チャネルを含む) のビット マップも配置できません。

CPngImage を CBitmap にアタッチしようとしましたが、うまくいきませんでした。

それで、最終的に私の疑問は、アルファチャンネルを持つPNG/ビットマップをイメージとしてCMFCToolBarボタンに追加できるか?

0 投票する
1 に答える
1884 参照

visual-c++ - c++ - mfc / cbutton にビットマップを追加したい。CButton にはメンバー setBitmap がなく、BM_SETIMAGE も sendMessage で使用できません

これは、stackoverflow に関する私の最初の質問です。すべてを正しく行うことを願っています:S

私のタイトルで説明されているように、私はmfcを使用してビジュアルスタジオ(2012)プロジェクトに取り組んでいます。デザイン ビューでダイアログに挿入されたビットマップを cbutton に追加しようとしました。

これについて私が読んだすべての投稿では、 setBitmap または sendMessage を使用してそうするように説明しています。私は常に、ダイアログの onInit() 関数でこれを実行しようとします。次のように setBitmap() を使用する (しようとする) 場合:

IntelliSense エラーが発生します。

IntelliSense: クラス "CButton" にはメンバー "setBitmap" がありません

別の試みは、sendMessage を使用することでした。

まず、別の IntelliSense エラーが発生しました。

IntelliSense: 識別子 "BM_SETIMAGE" は定義されていません

別の投稿で読んだように、「BM_SETIMAGE」を自分で定義しました:

これでコードはコンパイルできますが、ボタンにはまだビットマップが表示されません...インターネットのすべての投稿がこの2つのソリューションのいずれかを使用しているため、私は無力です. 誰が何が悪いのか考えていますか?そうでない場合は、読んでくれてありがとう:)

0 投票する
2 に答える
1389 参照

c++ - スクリーン キャプチャは黒い画像のみを返します

MFC アプリケーションのメイン ダイアログのスクリーン キャプチャを取得し、画像ファイルとして保存しようとしています。私はオンラインで見つけることができるすべての例を試してみましたが、常に同じ結果になりました. 私の最近の解決策は、CBitmap クラスを使用して、メイン ダイアログ ハンドルを CImage に転送することです。これが私のコードです:

0 投票する
1 に答える
932 参照

visual-c++ - 初心者 MFC C++ では、デバイス コンテキストが古い Font/Bitmap/etc ポインターを作成し、最後に selectObject() する必要があるのはなぜですか?

適例:

このコードは、"Hello, MFC" を原点 (ウィンドウの中央に移動) の周りに円で表示します。

出力

その CFont ポインターが作成され、dc がそれをフォントとして選択するのはなぜですか? それは単なる良いプログラミングの練習ですか、それともこのアプリは実際にそれを必要としていますか?

Bitmaps やその他のデバイス コンテキスト オブジェクトでこれを行う同様のコードを Web で見たことがあります。目的は何ですか?

コードの最後の行を削除しても、何も変わりません。助けてくれてありがとう。

0 投票する
2 に答える
916 参照

c++ - MFC 画面の一部を CBitmap にコピー

機能の使用

OnEraseBkgnd(CDC* pDC)

CDialog 派生クラスで、画面いっぱいに表示される背景画像を記述します。

次に、OnPaint 内に、1 回だけ実行される次のコードがあります (初めて OnPaint が呼び出されます)。

上記のコードは、画面の m_InfoBarRect 部分をメモリ CBitmap にコピーします。

背景画像の一部を取得する代わりに、正しい寸法の空白の塗りつぶされた長方形のみを取得します。

私のコードに何か問題がありますか?