問題タブ [gdi]
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.
c++ - CreateHatchBrush の使用例を教えてもらえますか
ソフトウェアでサムネイルの周りに影を描きたいです。CreateHatchBrush が役立つようですが、使用方法がわかりません。C++ のサンプルを提供してもらえますか? どうもありがとう!
windows - Windows での OpenGL と GDI の混在
Windows で OpenGL レンダリングと GDI を混在させる方法を考え出そうとしています。以前は、OpenGL コンテンツをフレームバッファ オブジェクトにレンダリングし、それを抽出してから Windows GDI グラフィックス コンテキストにブリットし、GDI のものをその上に描画していました。これは本当にフレームレートを壊しています。
現在行っていることとは逆のことをしたいので、OpenGL レンダリングはウィンドウに直接行われ、GDI のものをテクスチャにアップロードされたビットマップにレンダリングし、クワッドを使用してオーバーレイします。GDI はそれほど変更されないので、フレームごとに再描画する必要はありません。テクスチャをキャッシュするだけで済みます。
問題は、GDIビットマップから正しいアルファ値を取得できないように見えるため、テキストと線がひどくジャギーになることです。
これを行う方法に関する有用なリソースはありますか? 必要な方法で GDI または GDI+ をアルファ チャネルに書き込むことは可能ですか?
winapi - 印刷時に StretchBlt が失敗する
を使用してプリンターにレンダリングしようとしているグラフ (ビットマップ形式) がありますStretchBlt
。画面に描画すると、正常にStretchBlt
動作します。CutePDF プリンターに描画すると、0 が返され、最後のエラーが に設定されERROR_INVALID_HANDLE
、とにかく動作します。PDF995 プリンターまたは物理的な HP プリンターに描画すると、0 が返され、最後のエラーが に設定されERROR_INVALID_HANDLE
、何も描画できません。
StretchBlt
特定のデバイスで失敗する原因は何ですか? ソース ビットマップが DIB であり、宛先がStretchBlt
を呼び出してサポートしていることを確認しましたGetDeviceCaps
。
StretchDraw
関連する場合に備えて、私のコードを次に示します (C++Builder で記述されているため、Delphi の VCL を使用します。TCanvas は HDC をラップし、TBitmap は HBITMAP をラップします。VCLは、HALFTONE をサポートしない独自の関数を提供します。それと同じ問題。)
c++ - C ++、win32、gdi印刷:DrawEdgeはDrawTextまで到達しませんか?
関数DrawEdgeおよびDrawText(http://msdn.microsoft.com/en-us/library/ms534882.aspxおよびhttp://msdn.microsoft.com/en-us/library/ms533909.aspx)。それらは非常にうまく機能します、しかし、私が私の紙の底(それから約35ミリメートル離れたところ)に到達しようとすると、線は単に引かれなくなります。これが私のプリンターの限界だと思いました。しかし、私がテキストを描くとき、私のプリンターはそこに問題なく印刷できます。DrawEdgeがそこに線を引く方法はありますか?これを行う別の方法はありますか?これはバグですか?
c - GDI リークの問題
タスク マネージャーを使用して、次のコードに GDI リークがあることに気付きました。このコードを実行するプロセスの GDI オブジェクトの数は、実行するたびに 1 ずつ増加しますが、問題が見つからないようです。
どんな助けでも大歓迎です。
RM
c++ - 画面上にタイマーを作成する最良の方法
画面上に 01:02 のようなカウント ダウン タイマーを作成するというアイデアがありました (フルサイズ)。一つは、どうやって始めたらいいのか全く分からないということです。
私は基本的な c/c++、win32 API、および少しの gdi を知っています。
これを開始する方法についての指針はありますか?私のプログラムは、コンピューターを大きなストップウォッチにするようなものです(ただし、機能が追加されています)
コードを求めるのではなく、これを開始する方法についてのいくつかのアイデア/入門書です。主に Web の作業を行っているため、win プログラミングに少し慣れていません。
どんなアイデアでも大歓迎です
ありがとう
注: 速度のために、これを c/c++ で行う必要があると思います。私のストップウォッチ プログラムは、p3 800 mhz のような非常に遅い PC で実行されるため、速度は非常に重要です。
graphics - BitBlt ヘルプを使用した VB6 のダブルバッファリング
編集: バージョン 2 を更新しました。現在はモノクロです。CreateCOmpatibleBitmap
(書かれているように)memdcではなくウィンドウのDCで呼び出すようにして修正しようとしましたが、それでも間違っています:(
以下は、私が書いた関数の 3 つの異なる簡略化されたバージョンです。バージョン 1 は完全に動作し (ただし、明らかにちらつきがあります)、バージョン 2 は何も実行せず、バージョン 3 はフォーム全体を黒で塗りつぶします。バージョン 2 の何が問題になっていますか? Scalemode は vbPixels に設定されます。
バージョン 1:
バージョン 2 (新規):
バージョン 3:
注: ペイントを呼び出す直前に、サイズ変更関数に以下のコードを貼り付けました。それは役に立ちませんでしたが、私はそれをそこに残しておくべきだと確信しています:
.net - 交差する GraphicsPath オブジェクト
2 つの (.NET) GraphicsPath オブジェクトを交差させるにはどうすればよいですか?
windows - WinAPI-点線を描く方法は?
WinAPIGDIメソッドを使用してHPENを作成します。
HPEN hPen = CreatePen(PS_DOT, 1, color);
MoveToEx
次に、メソッドとを使用して線を描画しLineTo
ます。
実際、描かれた線は破線です。空の3ピクセル、色付きの3ピクセル-破線。
PS_DOTスタイルが点線を描画しないのはなぜですか?WinAPIを使用して点線を描画する方法は?