問題タブ [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.
c++ - LPCWSTR が TextOut() メソッドで正しくキャストされない
コードスニペット全体...
問題は、Visual Studio 2012 から、「const char*」型の引数が LPCWSTR 型のパラメーターと互換性がないというエラーが表示されることです。これは、次のコード行で発生します。
変換 ( ) を試みました(LPCWSTR)gTextObjs[i].s.c_str()
が、調査によると、文字配列操作ごとに 1 バイトから 2 への操作であるため、どうやらこれは非常に間違っているようです。"C4018: '<' : signed/unsigned mismatch"
この変更後の警告も受けました。私はC ++を初めて使用し、変換が間違っていることを考えると、このエラーでかなり迷っています。
SO でいくつかの異なるスレッドを確認しましたが、この特定のケースに合わせたものはないようです (または、それらのスレッドと私のスレッドの相関関係がよくわかりません)。:[
また、明確にするために...変換は「機能します」が、奇妙な日本語/中国語の記号が書かれているように印刷され、常に異なります。
c++ - WinAPI: WM_PAINT で BeginPaint と EndPaint を省略すると、CPU 使用率が 100% になる
WM_PAINT メッセージを処理するときに、BeginPaint と EndPaint の呼び出しを省略したところ、CPU 使用率が 100% まで跳ね上がりました。どうしてこれなの?
私もワーカースレッドを使用しています...しかし、それらは何か違うことをしており、この問題には影響を与えていないようです。
また、BeginPaint ではなく GetDC() からデバイス コンテキストを使用できますか? 価値観が違うようで、仕事も違うと思いました。
私がばかのように聞こえる場合は申し訳ありません-私はWinAPI、C ++、および一般的なロジックの世界に慣れていません...
ありがとう
c++ - NPP_HandleEvent と WM_PAINT メッセージ
Mozilla 開発者のドキュメントには次のように書かれています。
ウィンドウズ
プラグインは WM_PAINT メッセージを受け取ります。WM_PAINT の lParam パラメーターは、更新領域の境界ボックスを指定するRECT 構造体へのポインターを保持します。ただし、一部のプラグインは、このペイント矩形を無視し、代わりに常にプラグイン ウィンドウ全体を更新することを選択します。また、プラグインとブラウザーは同じ HDC を共有するため、プラグインは現在の設定を HDC に保存し、独自の環境をセットアップして描画し、HDC を以前の設定に復元する必要があります。NPP_HandleEvent から戻る前、または描画関連のブラウザー側メソッドを呼び出す前に、コントロールがブラウザーに戻るたびに、HDC 設定を復元する必要があります。
これはクライアント RECT である必要がありますか?
またはウィンドウのRECT?
c++ - C++ WinAPI TextOut() 更新テキスト
WinAPI を使用して Windows アプリケーションを作成しています。ウィンドウのメッセージをTextOut()
処理するときに、更新されたテキストをユーザーに表示する関数を使用しています。WM_PAINT
TextOut()
関数が呼び出された後に印刷されるテキストと、印刷されるテキストの長さを決定する最後のパラメーターを変更するにはどうすればよいですか?
使用について私が見つけたすべてはTextOut()
、テキストフォントに関するものでした。
c++ - WM_PAINT を手動で送信しない理由
WM_PAINT
手動で送信してはならず、代わりに電話する必要があることを読みInvalidateRect
ましたが、そうしない理由については何も見つかりませんでした。では、なぜですか?
更新は動作しますが、動作しInvalidateRect
ませんSendMessage(WM_PAINT)
winapi - 空の四角形で WM_PAINT が呼び出されることがあるのはなぜですか?
私は絵を描くことをたくさん扱っています。現在、WM_TIMER を使用して、InvalidateRect を使用してペイントをスケジュールしています。何らかの理由で、WM_PAINT は領域 (0,0,0,0) で頻繁に呼び出されるため、基本的に空の四角形になります。これを「ウィンドウ全体」と解釈しようとしましたが、かなりのパフォーマンス低下を引き起こしているようです。なぜWindowsはそれを送信するのですか?
c++ - ウィンドウにペイントする前に更新領域を無効にする必要がありますか
Direct2D を使用している場合、(ユーザーの操作に応じて) すぐに描画する前に更新領域を無効にする必要がありますか? それとも通話RenderTarget::BeginDraw()
で十分ですか?メッセージの外側のウィンドウの一部をすばやく再描画する必要がありWM_PAINT
ます。更新領域を無効にしないと、ウィンドウのクライアント領域全体が黒くなり、描画が表示されないことがあります。しかし、更新領域を無効にすると、更新領域WM_PAINT
を検証する前にシステムからメッセージが送信され、不要な描画操作が実行されます。WM_PAINT
Direct2D を使用している場合、メッセージ ハンドラーの外部で即時描画操作を実装するにはどうすればよいですか?
c - WM_PAINT の処理中
インターネットで多くの例を読みましたが、まだ立ち往生しています。アプリケーションに送信された WM_PAINT メッセージを処理しようとしています。
私のアプリケーションでは、常に という名前の同じ DC を描画しg_hDC
ます。それは完全に機能します。を受け取ると、 my の内容を から返された DC にWM_PAINT
描画しようとします。私が描いた最後のビットマップが含まれていると思います。だから私はそれを元に戻したいだけです。g_hDC
BeginPaint
g_hDC
壊す;
しかし、それは白い長方形を描くだけです...私は多くの可能性を試しましたが、何もうまくいきません。手伝ってくれませんか?