問題タブ [createparams]

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

c# - C# パネルがちらつきます。CreateParams を試すと、状況はさらに悪化します

タイトルはほとんどそれを言います。フォーム内にパネルがあります。パネルには、互いに跳ね返る多数のシェイプがあります。形状が多いほど、ちらつきが悪化します。このサイトをしばらく検索した後、これをコンストラクターに追加しました

次に、これも追加する必要があることがわかりました

これを追加した後、画面がちらつきました。ちらついたと言っても過言ではありません。ほとんどの場合、それはただの空白であり、時々形状が短く点滅します。図形をペイントする私のコードは次のようになります。

編集:

コードの最後のビットを正しく表示できない理由がわかりません。申し訳ありません。パネルを更新してから、長方形の配列をループしてパネルにペイントしています

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

c# - createparams クラスのビットごとの意味

createparams クラスの各ビットの意味を理解しようとしています。msdn Web サイトでさえ、それに関する情報を見つけようとしましたが、ビットの意味を説明している場所はどこにもありません。誰かが何か考えがありますか?

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

c# - カスタムListViewでCreateParamsをオーバーライドしても効果はありませんか?

ListView で一般的なスタイルを変更できることはわかっていPropertiesますが、これをテストしたいだけです。たとえば、View = View.LargeIconが にスタイルLVS_ICON = 0を適用するListViewか、 にスタイルをGridLines = true適用します。でテストしたいと思います。Win32 関数を使用しても問題ないと思いますが、便宜上、私の知る限り、コントロールのスタイルを変更できます。でも今回は で、動かせない、全然効かない、特殊なケースなのかな?これが私のコードです:LVS_EX_GRIDLINES = 1ListViewCreateParamsGetWindowLongSetWindowLongCreateParamsListViewListView

いくつかの効果をもたらすだけLVS_EX_GRIDLINES = 1ですが、効果はありませGrid lines are drawn on the ListViewBorder becomes thicker and looks like 3D-border。奇妙なことに、他の適用のほとんどはまったく効果がありません。

説明してもらえますか、少なくともうまくいく例を教えてください。GetWindowLong繰り返しますが、 andをSetWindowLong使用するソリューションやコードを教えないでくださいCreateParams

ありがとう!

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

.net - CreateParams() プロパティは、継承されたフォームにデフォルトのアイコンを表示します

タスク

メイン MDI フォームに基づく大きなアプリケーションを管理しています。他のすべてのフォームは、この MDI フォームまたは子のダイアログの子です。大きなアプリケーションであるため、子ウィンドウを開いたり閉じたりすると、アプリケーション全体でちらつきが発生します。このちらつき効果が乱雑に見えるので、私はこのちらつき効果を取り除くことを任されました。私の主な考えは、すべての子ウィンドウが、すべてのフォームに含まれる必要のあるすべての一般的な機能を処理する「マスター」フォームを継承するようにすることでした。ここから、この 1 つの中心点で問題を修正できるため、アプリケーションの管理がはるかに簡単になります。

問題

ちらつきを解決するために、問題を解決するソリューションを Web で見つけました。ただし、少し前に、これにより「マスター」フォームにも新しい問題が発生することがわかりました。フォームの「ShowIcon」プロパティがfalseの場合、「マスター」フォームはそれをデフォルトのビジュアルスタジオフォームアイコンに強制します。これを、Web で見つけたちらつき防止ソリューション (以下) に絞り込みました。

これをコメントアウトすると正常に動作しますが、ちらつきがたまらないです。

質問

現在のソリューションに代わるものがあるかどうか、またはアイコンを削除する「cp」変数内に設定できるものがあるかどうかを知りたいですか?

問題の一部をエミュレートする簡単なアプリケーションを作成しました。これはアプリケーションが大きいため、ちらつきを再現できませんでした。ただし、このテスト プロジェクトでは、上記のコードをオンにして「マスター」フォームを継承するフォームを複製しました。これにより、アイコンを削除できなくなります (デザイナーであっても)。dropbox.com/s/mg9fyfoshakc69z/TestProject.zip

このレプリケーションでは、MDI の親を含める必要はありませんでしたが、継承されたフォーム (MasterForm) とそれを継承するフォーム (Form1) を取得しました。MasterForm には、CreateParams プロパティをオーバーライドするコードがあります。これは、ウィンドウの ShowIcon のトグルが false に設定されている場合に、デフォルトの VB ウィンドウ アイコンを削除する代わりに表示するように、Form1 に影響を与えます。

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

c# - CreateParams 混乱

コントロールの設計を簡素化するクラスを作成しています。これは呼び出されControlDrawer、3 つのプライベート フィールドがあります。

  • Point名前付き_location
  • Bitmap名前付き_innerImage
  • NativeWindow名前付き_window

私はほとんどのクラスを完了しましたが、ここに私の難点があります (注意、ControlDrawer実装IWin32Window):

問題は、コメント部分の記入方法がわからないことです。誰か助けてくれませんか?

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

c# - システムメニューでフチなしフォームを作成するには?

ボーダーレスフォームを作成しました。次を使用してシステムメニューをそれに割り当てることができました。

しかし、実行すると、次のように WMNCHITTEST で設定したカスタム サイズ変更ゾーンが表示されなくなりました。

では、これを克服するにはどうすればよいでしょうか。WMNCHITTEST も尊重するシステム メニューでボーダレス フォームを作成することはできますか?

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

c# - CreateParams と XP

インターネットとstackoverflowでも検索しましたが、正しい/信頼できる解決策がありません。

C# Windows フォームの 1 つからちらつきを取り除きたいです。

したがって、次の方法で CreateParams メソッドをオーバーライドしました

これにより、Vista、Windows 7、および 8 で使用すると、アプリケーションのちらつきがなくなります。ただし、XP では、コントロールがランダムに変更されます。チェックボックスが見えなくなります。

スタック オーバー フローの質問thisを参照しました。しかし、MaximizeBox がないため、使用できません。これは、使用されている定義済みコントロールで発生しています! 実行可能な解決策を教えてください

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

c# - CreateParams のオーバーライドを使用して Window スタイルを none に変更する方法はありますか?

ウィンドウ スタイルを「なし」に設定してアプリケーションを作成しようとしています。私の知る限り、CreateParams のオーバーライドを使用してスタイルと拡張スタイルを変更できます。

アプリケーションがタスクバーやタスク マネージャーに表示されないように、ExStyle を 0x80 として使用します。ウィンドウ スタイルを None に変更するには、何を使用すればよいですか? List of Stylesに従って、どのスタイルを使用すればよいかわかりません。