問題タブ [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.
c# - C# パネルがちらつきます。CreateParams を試すと、状況はさらに悪化します
タイトルはほとんどそれを言います。フォーム内にパネルがあります。パネルには、互いに跳ね返る多数のシェイプがあります。形状が多いほど、ちらつきが悪化します。このサイトをしばらく検索した後、これをコンストラクターに追加しました
次に、これも追加する必要があることがわかりました
これを追加した後、画面がちらつきました。ちらついたと言っても過言ではありません。ほとんどの場合、それはただの空白であり、時々形状が短く点滅します。図形をペイントする私のコードは次のようになります。
編集:
コードの最後のビットを正しく表示できない理由がわかりません。申し訳ありません。パネルを更新してから、長方形の配列をループしてパネルにペイントしています
c# - createparams クラスのビットごとの意味
createparams クラスの各ビットの意味を理解しようとしています。msdn Web サイトでさえ、それに関する情報を見つけようとしましたが、ビットの意味を説明している場所はどこにもありません。誰かが何か考えがありますか?
c# - カスタムListViewでCreateParamsをオーバーライドしても効果はありませんか?
ListView で一般的なスタイルを変更できることはわかっていProperties
ますが、これをテストしたいだけです。たとえば、View = View.LargeIcon
が にスタイルLVS_ICON = 0
を適用するListView
か、 にスタイルをGridLines = true
適用します。でテストしたいと思います。Win32 関数を使用しても問題ないと思いますが、便宜上、私の知る限り、コントロールのスタイルを変更できます。でも今回は で、動かせない、全然効かない、特殊なケースなのかな?これが私のコードです:LVS_EX_GRIDLINES = 1
ListView
CreateParams
GetWindowLong
SetWindowLong
CreateParams
ListView
ListView
いくつかの効果をもたらすだけLVS_EX_GRIDLINES = 1
ですが、効果はありませGrid lines are drawn on the ListView
んBorder becomes thicker and looks like 3D-border
。奇妙なことに、他の適用のほとんどはまったく効果がありません。
説明してもらえますか、少なくともうまくいく例を教えてください。GetWindowLong
繰り返しますが、 andをSetWindowLong
使用するソリューションやコードを教えないでくださいCreateParams
。
ありがとう!
.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 に影響を与えます。
c# - CreateParams 混乱
コントロールの設計を簡素化するクラスを作成しています。これは呼び出されControlDrawer
、3 つのプライベート フィールドがあります。
Point
名前付き_location
Bitmap
名前付き_innerImage
NativeWindow
名前付き_window
私はほとんどのクラスを完了しましたが、ここに私の難点があります (注意、ControlDrawer
実装IWin32Window
):
問題は、コメント部分の記入方法がわからないことです。誰か助けてくれませんか?
c# - システムメニューでフチなしフォームを作成するには?
ボーダーレスフォームを作成しました。次を使用してシステムメニューをそれに割り当てることができました。
しかし、実行すると、次のように WMNCHITTEST で設定したカスタム サイズ変更ゾーンが表示されなくなりました。
では、これを克服するにはどうすればよいでしょうか。WMNCHITTEST も尊重するシステム メニューでボーダレス フォームを作成することはできますか?
c# - CreateParams と XP
インターネットとstackoverflowでも検索しましたが、正しい/信頼できる解決策がありません。
C# Windows フォームの 1 つからちらつきを取り除きたいです。
したがって、次の方法で CreateParams メソッドをオーバーライドしました
これにより、Vista、Windows 7、および 8 で使用すると、アプリケーションのちらつきがなくなります。ただし、XP では、コントロールがランダムに変更されます。チェックボックスが見えなくなります。
スタック オーバー フローの質問thisを参照しました。しかし、MaximizeBox がないため、使用できません。これは、使用されている定義済みコントロールで発生しています! 実行可能な解決策を教えてください
c# - CreateParams のオーバーライドを使用して Window スタイルを none に変更する方法はありますか?
ウィンドウ スタイルを「なし」に設定してアプリケーションを作成しようとしています。私の知る限り、CreateParams のオーバーライドを使用してスタイルと拡張スタイルを変更できます。
アプリケーションがタスクバーやタスク マネージャーに表示されないように、ExStyle を 0x80 として使用します。ウィンドウ スタイルを None に変更するには、何を使用すればよいですか? List of Stylesに従って、どのスタイルを使用すればよいかわかりません。