問題タブ [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 投票する
2 に答える
1394 参照

.net - Graphics.FromHwnd(IntPtr.Zero) が null を返すのはなぜですか?

現在、アプリケーション内のサードパーティ コンポーネント (DevExpress) に関する問題を調査しています。私の問題は、この 1 つのDevExpress KB 記事とよく似ています。同じスタックトレースが少なくても同じ例外が発生します。そこで、.NET Reflector を使用して、このシナリオで何が null になる可能性があるかを調べました。null の候補となる唯一のオブジェクトは Graphics です。これは Graphics.FromHwnd(IntPtr.Zero) で作成されます。私はGDIについて幅広い知識を持っていないので、これがnullを返す可能性のあるシナリオを誰かが教えてくれるかどうか知りたいです...

Windows が GDI ハンドルの外にあるシナリオでそれを再現しようとしましたが、「ハンドル外」を取得しています - 少なくとも 1 回は例外です。これは、調査中の問題には当てはまりません。

ティア、マーティン

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

.net - BeginPaint の hWnd パラメータの値は正しいですか?

ウィンドウにデータをプロットする Visual C++ 2008 プログラムを作成しようとしています。これを行う正しい方法は、WndProc をオーバーライドすることです そこで、Visual C++ 2008 Express Edition で Windows フォーム アプリケーションを作成し、このコードを Form1.h に追加しましたが、コンパイルされません。

これを Visual C++ 2008 Express Edition でコンパイルしようとすると、 エラー C2664: 'BeginPaint' : パラメーター 1 を 'System::IntPtr' から 'HWND' に変換できません。

m.HWnd の代わりに this->Handle を使用しようとすると、同じエラーが発生します。

m.HWnd を (HWND) にキャストしようとすると、次のエラーが発生します: error C2440: 'type cast' : cannot convert from 'System::IntPtr' to 'HWND'

たぶん、m.HWnd を pin_ptr などにキャストする必要があります。

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

c - DIB がボトムアップかトップダウンかを判断するにはどうすればよいですか?

を使用して DIB を作成する場合、構造体のフィールドを負または正の値にCreateDIBSection()設定することで、トップダウンまたはボトムアップのどちらにするかを指定できます。ただし、そのようなビットマップを呼び出して構造体を埋めると、との両方が常に正のように見えます。biHeightBITMAPINFOHEADERGetObject()DIBSECTIONdsBm.bmHeightdsBmih.biHeight

DIB しかない場合に、DIB がトップダウンかボトムアップかを調べる方法はありHBITMAPますか?

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

winapi - GDI クリッピングの実装の詳細

次のコード スニペットを検討してください。

Microsoft のクリッピングの実装は、Rectangle の呼び出しから何も描画せずにすぐに戻るほどインテリジェントですか? おそらくそうだと思いますが、どこにも確認を見つけることができませんでした. クリッピングに関する MSDN のドキュメントは内部の詳細がまばらであり、Google で調べても GDI クリッピングの使用方法しか見つかりません。

編集:これが Windows Mobile で実行されているため、分析用のツールセットが限られていることを指摘できなかったことがわかりました。

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

c# - C#でビットマップオブジェクトからBITMAPV5HEADERを取得する方法

C#のビットマップオブジェクトからBITMAPV5HEADERを取得する方法はありますか?または、その中にある値を取得しますか?ビットマップからColorSpace情報を取得する必要がありますが、C#でこれを行う方法がわかりません。

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

gdi - カスタム GDI デバイスを作成する方法は?

ユーザー モードでカスタム GDI デバイスを作成することはできますか? アイデアは、不透明なコンポーネントに渡すことができるデバイス コンテキスト (HDC) を作成して、コンポーネントが TextOut などの GDI 関数を呼び出すときに、実際のテキスト文字列を取得できるようにすることです。

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

winapi - MaskBlt に使用するラスター オペレーター

GDI MaskBlt コマンドを使用して透明度のある画像を描画しようとしています: http://msdn.microsoft.com/en-us/library/dd145047(VS.85).aspx

明らかなユースケースに使用するラスター演算子に関するドキュメントには何も見つからないようです:一種のMAKEROP4(SRCCOPY, DSTCOPY)-マスクが1の場所でブリッティングし、マスクが0の場所で宛先をそのままにします.SRCCOPYは有効なROPです、しかし、架空の の代わりに何を使用すればよいDSTCOPYですか?