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

c# - C# で WindowsHookEx を設定する

画面に描画できるように、サードパーティのアプリをフックしようとしています。画面への描画は簡単で、助けは必要ありませんが、 を使用SetWindowsHookExして処理するのに問題があるようですWH_GETMESSAGE。最後の 2 つのパラメーターに何を渡せばよいかわかりません。

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

c++ - Windows7 でセキュリティ画面 (Ctrl+Alt+Del) から戻るときに WM_PAINT メッセージを受信しない

セキュリティ画面の終了を検出する必要があります。これは、ユーザーがウィンドウで Ctrl+Alt+Del を押したときに表示される全画面です。Xp では、この画面を閉じたときにアプリケーションが wm_paint メッセージを受け取りますが、Windows 7 では、メッセージが常に受信されるとは限らず、おそらく 25% の時間しか受信されません。

代わりに WM_WTSSESSION_CHANGE メッセージをキャッチしようとしましたが、ユーザーがログアウトしてアカウントに再度ログインした場合にのみ、このメッセージを受け取ります。

これまでのところ XP と 7 でしかテストしていないため、Vista での動作については不明です。

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

c++ - WM_PAINT メッセージを傍受し、これに基づいて行動する

C++ でデスクトップの WM_PAINT メッセージを傍受/フックしようとしています。私は現在、デスクトップ ハンドルで描画しています。私の唯一の問題は、同期していないため、ちらつく可能性があることです。

基本的に欲しいのは、UINT メッセージの WM_PAINT をチェックできるステートメントです。こういうときは、何か別のことをしたい。

怠惰な方法で質問しますが、これを小さなコードにまとめている人はいますか? デスクトップ ハンドルの取得は GetDesktopWindow(); で行います。このことから、私も WM_PAINT をチェックしたいと思います。

0 投票する
0 に答える
1118 参照

java - WM_PAINT、Java、隠しウィンドウのキャプチャ

まず免責事項として、私は Java プログラマーであり、Windows API についてほとんど何も知りません。だから我慢してください。

私の目標は、Java を使用して非表示のウィンドウをキャプチャすることです。私のターゲット プラットフォームは Windows です。Robotクラスが画面の表示部分をキャプチャするために使用されることは理解しています。ブラウジングした後、次の 3 つのリンクに出くわしました。これらは関連していると思われます。

JxCapture は、Feng Yuan の記事が複雑であるのと同じくらい高価です。私の質問は、このフォーラムの達人が合理的な解決策を見つけるのを手伝ってくれるかどうかです. JxCapture で提案されているアプローチは、それほど複雑ではないようです。ヒントはありますか?Visual Basic スクリプトまたはこれを行う C# コードは、出発点として適しています。

ウィンドウが非表示のときにキープレス イベントまたはマウス プレス イベントを送信すると、強制的にウィンドウが再描画され、java.awt.Robot. それは錯覚であり、うまくいきません。

一方、JxCapture スレッドのメッセージは 2006 年のものです。それ以来、Sun にはそのような機能が組み込まれているのに、私はそれを認識していないのでしょうか?

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

vb.net - タスクバーに画像を描画しているときにWinformがちらつく

現在、ウィンドウのタイトル バーに小さな 16x16 の画像を描いています。それはうまく機能しますが、取り除く方法がわからない不快なちらつきを除いて.

私は単に次のように画像を描いています:

何かが変更されるたびにタイトルバー全体を再描画します(クリック、コーナーボタンへのマウスオーバーなど)。再描画中にちらつきが発生します。

他の誰かがこの問題を抱えていますか?

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

c++ - win32: WM_PAINT を呼び出しますが、そうすべきではありません!

WM_PAINT に問題があります。基本的に、ユーザー WM_COMMAND の後に WM_PAINT を呼び出したいのですが、何らかの理由でメイン関数で呼び出されます。

MSDN によると、WM_PAINT は UpdateWindow() または ReDrawWindow() の後、またはそれをメッセージとして SendMessage したときにのみ自動的に呼び出されます。しかし、私は何もしません。基本的に、WM_PAINT を呼び出したいのは、ユーザーとのやり取りの前ではなく、後だけです...これを修正する方法はありますか? これは何が原因ですか?(私はそのいくつかの奇妙な副作用を推測します >.< のドキュメントを見つけることができません)

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

c++ - Windows API を使用して透明なウィンドウにアニメーションを描画するにはどうすればよいですか?

Windows API を使用して、背景が透明なウィンドウにアニメーションを描画しようとしています。問題は、ウィンドウから前の図面を削除できないことです。

次のパラメーターを設定します。

しかし、それでもうまくいきません。添付の画像で結果を確認できます。私が欲しかったアニメーションは、画面上で円を動かすことです。代わりに(添付の画像に示すように)得られるのは、各描画の前にウィンドウがクリアされないため、モーションのアーティファクトです。

以下の完全なコードを参照してください。

これは、5 フレーム後の結果です。 代替テキスト

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

c++ - Win32 で、ウィンドウの描画を一定期間無効にすることはできますか?

ダイアログのレイアウトを変更している間、ウィンドウの再描画をしばらくフリーズさせる機能はありますか?

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

windows-7 - Windows7は不要なWM_PAINTメッセージを送信します

ウィンドウに送信された奇妙な発信WM_PAINTメッセージについて質問があります。これはWindows7で発生し、 WindowsXPでは発生しません。

詳細

私のプログラムには、GUIの更新をトリガーするタイマーがあり、タイマーは次のAPI呼び出しに基づいています。

タイマーの有効期限を処理するためにシステムに提供されたスレッドで、いくつかのGUI更新を行います。つまり、ウィンドウ(0,0)->(57,50)に線を描画します。

はWindowsXPで期待どおりに機能しますが、Windows7では、これにより、システムはWM_PAINTメッセージを更新領域(0,0,58,51)でこのウィンドウに送信します。長方形は、線の影響を受ける正方形の領域よりも1ピクセル広いことに注意してください。

この図面のために到着したこのWM_PAINTは、私には理解できません。ウィンドウはタッチ/オーバーラップ/サイズ変更などされていません。どうやら、この線は長方形の無効化としてシステムによって認識されます。

そして、これはWindows 7の場合にのみ発生します(Windows XPではありません)。

質問

W7でのWDMまたはWindowsの処理について何か新しいことはありますか?これを回避する方法はありますか?

プログラムまたは使用しているグラフィックツールキット(あるいはその両方)のバグである可能性があります。しかし、なぜそれがWindows7でのみ現れるのでしょうか。

手がかりをありがとう!

デニーズ

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

c++ - C++ プログラミングの効率

Microsoft Developer Network http://msdn.microsoft.com/en-us/library/dd162487(v=VS.85).aspxからコピーしたコードを次に示します。

私はおそらく間違っていますが、コンパイラーが次のいずれかのようなステートメントを実行するたびに、私は思っていました。

コンピューターは新しい変数を作成します。少なくとも、新しい変数を作成したいときにそれを書くので、それは考えるのが論理的なことですよね?

また、次のようなコードブロックがあるといつも思っていました。

コンピュータは 100 の異なる変数をすべて同じ名前で作成し、変数sumに含まれる何らかの値を作成します。i

上記のサンプル コードでは、関数 WndProc がプログラムの過程で何度も呼び出されますが、関数が作成する "ps" と "hdc" という 2 つの変数は、関数が実行されるときにのみ使用されます。 .

では、コンピューターは決して使用しない余分な PAINTSTRUCT 変数と HDC 変数を個別に大量に作成するのでしょうか?
case WM_PAINT: の後に "ps" と "hdc" を宣言すると、少なくとも少しは効率的ではないでしょうか?