問題タブ [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.

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

c++ - 透明な背景(GDI)を使用してpatternBrushを描画するにはどうすればよいですか?

背景が透明なパターンを描くことができません。これは私のスニペットです:

msdnのドキュメントでは、透明性については何も言及されていません。このモードを使用できると思いますか?それともこれはバグですか?

ありがとう!

0 投票する
10 に答える
14952 参照

asp.net - GDI+で一般的なエラーが発生しました

私のコードは:

私のローカルマシンではすべてが機能しますが、それでもサーバー(2003)では発生します。フォルダのアクセス許可があります。

0 投票する
5 に答える
4366 参照

gdi - 「排他的」DirectDrawパレットは実際には排他的ではありません

DirectDrawでフルスクリーンの256色グラフィックモードを使用する古いビデオゲームを維持しています。問題は、バックグラウンドで実行されている一部のアプリケーションが、ゲームの実行中にシステムパレットを変更しようとすることがあり、その結果、グラフィックが破損することです。

WM_PALETTECHANGEDメッセージを処理することで、これがいつ発生するかを(場合によっては)検出できます。いくつかの更新バージョンでは、ログを追加しました(ウィンドウのタイトル/クラス/プロセス名をログに記録するだけです)。これにより、ユーザーは問題のあるアプリケーションを特定して閉じることができます。MSNLiveMessengerが一般的な原因でした。

Windows Vista(および7)が「単独で」それを実行することがわかったとき、問題はさらに悪化しました。WM_PALETTECHANGEDパラメーターは、CSRSSとデスクトップウィンドウを指します。Vistaでは、よく機能する回避策は、任意のフォルダー(コンピューター、ドキュメントなど)を開き、ゲームの実行中は開いたままにすることでした。ばかげているように聞こえますが、ほとんどの場合、うまくいきました。Windows 7では、この回避策でさえ機能しなくなりました。一部のサービス(Windows Updateおよびインデックスサービス)を停止しても、一部の構成で問題が解決したことがユーザーからわかりました。

少し前に、私は解決策を見つけることを期待してランダムなことを試し始めました。DirectDrawパレットを設定する前に(Create / SelectPaletteを使用して)GDIパレットを設定すると(IDirectDrawPalette :: SetEntriesを使用)、破損したパレット(WM_PALETTECHANGEDハンドラー)が復元されることがわかりました。SetSystemPaletteUseとプライマリサーフェスでのSetPaletteの呼び出しは、さらに役立ちました。ただし、アプリケーションがパレットを盗もうとすると、ちらつきが認識されます。これは、フェード時に特に顕著です。

質問:ゲームがフォーカスを保持している限り、他のアプリケーションがWindowsパレットを変更することを完全に禁止する「本物の」排他的なパレットを取得する方法はありますか?

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

winapi - GDIを使用して円形のパスの周りにテキストを描画するにはどうすればよいですか?

C / C ++を使用して、円形のパスに沿ってウィンドウHDCにテキストを描画する必要があります。数時間検索すると、グーグルの目が見えてきます。誰かが私に良い参考文献を教えてもらえますか?

0 投票する
3 に答える
3474 参照

gdi+ - GDI+ は GDI の上にある単なるレイヤーですか、それとも新しいものですか?

GDI+ が登場したとき、Windows で何かを表示するための "新しく、より速く、より優れた" 方法であるという大騒ぎを覚えています。しかし、それを見るたびに、それは本当に単なる GDI の COM ラッパーに過ぎないように思えました。

本当?それとも、GDI+ は本当に独立したグラフィカル ライブラリであり、いくつかのパラダイムを GDI と共有しているだけなのでしょうか?

個人的には、それがどのように独立しているのかはわかりませんが、何らかの形で明確な声明を見たことはありません.

0 投票する
9 に答える
7775 参照

.net - 標準の .NET GDI 印刷クラスを使用した .NET からの PDF ファイルの生成

.NET の標準の PrintDocument and Graphics (GDI) クラスを使用して PDF ファイルを生成する方法を探しています。私の知る限り、これを行う唯一の方法は、PDF プリンターに印刷することです。

問題は、PDF プリンター ドライバーが常にファイル名を要求することですが、コードからファイル名を制御する必要があります。PDFSharp や DynamicPDF などの PDF ライブラリを使用することはできません。これらはすべて、PDF ファイルを生成するための独自の API を提供するためです。

これは内部アプリケーションに必要なので、依存関係は問題になりません。

私の質問は簡単です: ファイル名を指定でき、ユーザーが何も要求されないようにプリンタードライバー (Adobe Acrobat、PDFCreator など) を制御する方法はありますか?

0 投票する
4 に答える
4797 参照

c++ - DrawDIB の品質を向上させるには?

私は c++、gdi でコーディングしています。stretchDIBits を使用してイメージを DC に描画します。

しかし遅いです。そこで、DrawDib 関数を使用するように変更しました。

ただし、結果は COLORONCOLOR モードで描画した場合と同じです。描画品質を向上させるにはどうすればよいですか?

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

windows - 高解像度モニターでフォント サイズをマッピングするために使用する倍率は?

アプリケーションが高解像度モニターをサポートする必要があるという要件があります。現在、アプリケーションを高解像度モニターで起動すると、表示されるテキストが小さすぎます。デフォルトでは Arial 12 ポイントのフォントを使用します。

テキストを表示するには、フォント サイズを比例的に変更する必要があります。モニターの解像度を考慮して、目標のフォント サイズを求める公式を考え出すのは難しいと感じています。

これが私の問題の理解です。

1) Windows では、デフォルトで 96 ピクセルが 1 論理インチに相当します。これは、モニターの解像度が上がると、論理インチ単位の画面サイズも大きくなることを意味します。

2) 1 ポイント フォントは、論理インチの 1/72 です。したがって、論理インチあたり 96 ピクセルがあるという事実と組み合わせると、フォントのポイントあたり 96/72 ピクセルがあることがわかります。

これは、12 ポイントのフォントの場合、占有するピクセル数が 12*96/72 = 16 ピクセルであることを意味します。

ここで、結果のフォントが適切に表示されるように、これらのピクセル数を増やすために必要な倍率を知る必要があります。スケーリングされたピクセル数がわかっている場合は、(96/72) で割るだけでフォント サイズを取得できます。

すべてのモニター解像度で適切にスケーリングされたフォントを確保するために推奨されるスケーリング係数は何ですか?

また、私の理解が間違っている場合は修正してください。

0 投票する
8 に答える
1289 参照

c++ - ウィンドウで画面全体に描画できるのはなぜですか?

私は得られたDCで大いに遊んでいて、CreateDC(L"DISPLAY",NULL,NULL,NULL)なぜウィンドウが画面全体に簡単に描画できるのか疑問に思っていました.TIMERを1ミリ秒に設定するなど、かなり邪悪なことを行うことができると思います.タイマーが刻むたびに画面全体に黒い長方形を描画します。