問題タブ [wm-paint]

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 投票する
3 に答える
1840 参照

c++ - WM_PAINTメッセージに応答してGetDC/ReleaseDCではなくBeginPaint/EndPainを使用することについて何か特別なことはありますか?

GetDC / ReleaseDCを使用して、ウィンドウのクライアント領域に描画できます。ただし、WM_PAINTメッセージに応答して、BeginPaint/EndPaintを使用する必要があります。これについて何か特別なことはありますか?

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

c++ - サブクラス化されたCStaticコントロールでのWM_PAINTの処理

CStaticクラスが基本クラスであるカスタムコントロールを作成しました。現在、WM_PAINTイベントを使用して描画を処理しています。しかし、奇妙な振る舞いがあります。関数を使用してウィンドウを無効にした後でウィンドウを再度有効にすると、CWnd::EnableWindow関数で記述したものを描画できなくなりOnPaintます。代わりに静的コントロールを描画します。

スタイルをオーバーライドDrawItemして使用するこの標準的な方法があることに同意します。SS_OWNERDRAWしかし、何が問題になっていWM_PAINTますか?

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

winapi - WM_PAINT で作成した線がウィンドウに表示されない

私はこの分野に少し慣れていないので..私が理解している限り、WM_PAINTで次のコードを作成しました。行を作成していますが、ウィンドウが表示されていないため、この行が表示されません全て。2秒ごとにWM_PAINTを呼び出すスレッドがありますが、プログラムを実行すると毎回何も表示されません。

ありがとうございます。

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

c# - 独自のビットマップに無効化

コントロールをビットマップにオフスクリーンでレンダリングして、すばやくアクセスできるようにしたいと考えています。

残念ながらControl.DrawToBitmap、それが呼び出されるすべての子コントロールを含むコントロール全体を描画するようです。内部的には、自己提供の DC を含む WM_PRINT メッセージをビットマップに発行します。この一時的なビットマップは、ユーザー提供のビットマップにブリットされます。私には受け入れられません。必要に応じてこのビットマップを更新して、ビットマップが必要なときのパフォーマンスの低下を最小限に抑えたいと思います。

理想的なシナリオでは、フォームが画面に表示されているかのように動作するようにしたいと思います (ただし、表示することはできません)。これは、たとえば、一部の Control のTextプロパティが変更された場合、フォームが部分的に無効になることを意味します。関連するメッセージ/イベントをキャッチすると、フォームを描画するために独自の DC を指定するか、フォーム DC を自分自身に単純に BitBlt することができます。

私が見たいくつかの方向:

  • PaintEventArgsパラメーターはOnPaintメンバーsavedGraphicsStateを保持しているようです。おそらく、無効にする必要がないものを把握するために使用できます
  • フォームは表示されますが、画面領域の外にあります。ただし、コントロールは描画されません。
  • ウィンドウで RedrawWindow() を手動で呼び出す、同じ話
0 投票する
1 に答える
494 参照

c - WM_PAINTのフレームレート

WM_PAINTメッセージのフレームレートを1秒あたりのフレーム数で取得するにはどうすればよいですか?ソフトウェアレンダラーを作成しようとしていますが、デバッグにはフレームレートが非常に重要です。

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

c++ - WS_TABSTOP がウィンドウの描画順序に影響を与える原因は何ですか?

WTL では、CBitmapButton は PNG のような透明なレイヤーを持つ画像をサポートしていません。そのため、GDI+ を使用して PNG を描画するようにコードをカスタマイズし、CPNGButton という名前を付けます。しかし、win XP では状況が奇妙です。ボタンが他のウィンドウと重なっている場合、ボタンは最初に WM_PAINT を受け取り、次に親を受け取り、誤った結果を引き起こします。

ここに画像の説明を入力--->ここに画像の説明を入力

リソースを確認し、ボタンのテンプレートから WS_TABSTOP 属性を削除すると、問題なく動作し、親ウィンドウが最初に WM_PAINT を受け取り、次にボタンを受け取ります。WS_TABSTOP がウィンドウの描画順序に影響を与える原因は何ですか?

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

c++ - C ++ win32アプリがバックグラウンドで実行される原因は何ですか?

私はこのアプリに少なくとも3〜4か月間取り組んできましたが、最近は機能していません。

昨日は順調に進んでいたので、今日から始まりました。これで実行されますが、ウィンドウが表示されません(タスクマネージャーでプロセスリストを確認して実行していました)。ShowWindow(hwnd、nFunsterStil);を確認しました。誤って削除されたわけではありませんが、まだ残っています。

プログラムが機能しなくなったときに取り組んでいたのは、WM_PAINTの問題だと思います。

これは、コンパイルして最初に見えなくなったときに私が持っていたものです。

今、私はそこにあるいくつかの行を取り除き、ブロック全体をコメントにし、それを完全に削除しようとしましたが、それは何の助けにもなりませんでした。私はおそらく私のコンピュータのメモリで何かを台無しにしたことを知っています。だから私の質問は:何が悪いのか、そしてどうすればそれを修正できますか?助けてくれてありがとう。

これが完全なメッセージ交換です:

そして、これがウィンドウの作成に関連する部分です。

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

windows - DefWindowProc WinApi の動作

誰かが DefWindowProc ですべて問題ない理由を説明できますが、それを削除すると、文字列 "Hello windows" がウィンドウとボタンなしで画面に表示されますか? 「UpdateWindow」はウィンドウプロシージャWM_PAINTメッセージに送信するため、テキストは表示されるのにウィンドウの作成がスキップされるのはなぜですか?

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

winapi - GetDCとBeginPaintのパフォーマンスに関する考慮事項

MSDNおよび多数の投稿では、BeginPaint/EndPaintをWM_PAINTで使用する必要があることが示唆されています。また、ペイントでダブルバッファリングを使用する場合は、WM_CREATEでDCとmemの割り当てを初期化し、それらのハンドルをWM_PAINTで再利用する方が理にかなっていることを示唆する場所を数多く見ました。

たとえば、BeginPaintを使用すると、よく次のように表示されます。

初期化と破棄を保存するために、これを行うことは可能ですか?

したがって、EndPaintを使用して更新領域をクリアするだけで、描画を前に作成したオブジェクトに委任します。

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

c# - プレイヤーの絵を制御する方法

ライブ映像に何かを描こうとしています。私の意見では、これを行う最善の方法は WM_PIANT イベントを処理することです。

私の目的は、プレイヤーが最初に描画し、その後でアプリケーションを描画することです。そうすれば、ビデオに絵を描くことができます。これは、ウィンドウに新しいフレームを描画してイベントを処理する必要がある前に、毎回通知を受けたいということです。

私は DirectshowNet を使用しているので、C# でプログラミングしています (C++ の API が持つすべてのインターフェイスを持っています)。グラフ マネージャが特定のウィンドウ メッセージを WM_PAINT などのビデオ レンダラーに転送することを理解しています。

アプリケーションの後ではなく、アプリケーションの前にプレーヤーにフレームを描画させるにはどうすればよいですか?