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

c# - Windows フォーム アプリのちらつき

大量のコントロールを備えたアプリがあります。また、特に起動時に大量のちらつきがあります。

この修正を適用しました。

これはうまく機能しました - ちらつきはかなり信じられないほど減少しました. ただし、ウィンドウの右上にある [最小化]、[最大化]、および [閉じる] ボタンは、マウスを移動したりクリックしたりしてもアニメーションしません (それでも機能します)。これにより、アプリにハング感が生じます。

最大化、最小化、および閉じるボタンの使いやすさを維持しながら、WS_EX_COMPOSITED を保持するにはどうすればよいですか?

これは Windows XP で発生します。@fallenidol が指摘したように、これは Windows 7 の問題ではありません。

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

c# - CreateParamsのビット演算子の有効な使用、望ましくない動作?

ProgressBarコントロールのラッパーを作成しています(実際には真のラッパーではありませんが、Vistaの機能を適切に実装しています)。そしてここに私のコードがあります:

ただし、フォームにコントロールをドロップすると、PBS_SMOOTHを使用してVerticalとして開始されます。だから私の質問は、ビット単位の演算を使用してCreateParams.Styleに値を設定する前に、どのような追加のチェックを行う必要があるか、またはビット単位の演算(または実際のところ私のコード)は正しいですか?

Jon Skeetのおかげで更新 これを完全に修正して機能させることができました。UpdateStyles()を適用して新しいスタイルをプロパティでオンデマンドでapply()に強制すると、コントロールは期待どおりに機能し、洗練されます:)

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

windows - CreateParamsプロシージャをオーバーライドすると、WS_SYSMENUへのフルアクセスを引き続き使用できますか?

完全なソースコードはここにあります: http ://www.eyeClaxton.com/download/delphi/SkinProject.zip

「キャプションまたはボーダー」のないスキンフォームを作成しようとしていますが、システムメニュー(つまり、移動、最小化、最大化、復元、サイズ)へのフルアクセスが残っています。WS_SYSMENU、WS_MAXIMIZEBOX、WS_MINIMIZEBOXを使用してCreateParamsプロシージャをオーバーライドすることにより、すべてのメニュー項目を実現できます。WS_SIZEBOXを使用すると、メニューの[サイズ]コマンドにアクセスできますが、不要な境界線が描画されます。上記のリンクに完全な(Delphi 7)の例を含めました。さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

解決:

完全な「更新された」ソースコードはここにあります: http ://www.eyeClaxton.com/download/delphi/SkinProject.zip

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

c# - DataGridViewが間違って描画する

フォームがあり、他のコントロール(ボタン、カスタムコントロール、ラベル、パネル、グリッドビュー)のトーンがあります。ちらつきの問題があったと思います。ダブルバッファリングを試しましたが、解決できませんでした。最後に私はこれを試しました:

ちらつきはなくなりましたが、datagridviewの描画が間違っています。CellBorders、BorderColorsが間違っていることを示しています。実際、このコードには、背景画像や線などに問題があります。それはなぜですか、そしてどのように修正できますか?

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

delphi - TCreateParams.WinClassNameを変更したり、別の独自のアプリケーションのフォームハンドルを見つける方法を変更しても安全ですか?

私には2つのアプリケーションがあり、最初のアプリケーションは2番目のアプリケーション(これも私自身のもの)からフォームのハンドルを見つける必要がありますが、異なるアプリケーション(インスタンスではなく、異なるアプリケーション)です。私はいくつかのテクニックを見てきましたが、私がやりたいことが安全かどうか、またはこれを行うための効率的な方法は何かを知りたいです。

FindWindowクラス名を渡すことができる関数を使用することを考えていたので、フォームのWinClassNameメンバーをCreateParams一意の値(GUIDなど)に変更すると、大きなウィンドウでこのウィンドウを簡単に見つけることができます。たぶんそれは私のアプリケーションからのものです。

フォームを見つける必要があるアプリケーション:

前のアプリケーションからフォームを見つける必要がある他のアプリケーション:

私の質問は:

のこのメンバーをTCreateParams私が望むものに変更するのは安全ですか、それとも何かで安全ではありませんか?または、独自の別のアプリケーション(アプリケーションインスタンスではなく、独自の別のアプリケーション)からフォームのハンドルをどのように探しますか?

どうもありがとう!

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

winforms - エアロドロップ-ボーダレスフォームの影?

次のコードを試して、CreateParamsをオーバーライドしました。

正常に動作します。しかし、それは望ましい結果をもたらしません。

これは私が欲しかったタイプの影です...

これは私が欲しかったタイプのシャドウです。

そして、これは私がコードから得たものです...

これは私がコードから得たものです。

ドロップシャドウのエアロスタイルを手に入れる方法はないかと思っていました。

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

vb.net - モーダルダイアログが表示されているときはフォームが一番上にあるがクリックできない

私が欲しいのは、表示するメッセージがあるときに右下隅に表示される小さな通知メッセージです。何もない場合、通知メッセージは表示されません。通知メッセージがフォーカスを奪ったり、メイン アプリケーションをブロックしたりしてはなりません。

私が持っているのは、タスクを一種のメッセージ サービスとして実行するアプリケーションです。このアプリケーションには、モーダル ダイアログとして開く複数のダイアログが含まれています。

メッセージがアプリケーションに到着すると、監視可能なリストに追加されます。これにより、通知メッセージを表示するフォームでイベント ハンドラが起動され、再描画されてリストの最初の項目が表示されます。メッセージが読み取られるか閉じられると、リストから削除されてイベントが再び発生し、リストの最初の項目からの情報でフォームが更新されます。リストが空の場合、フォームは非表示になります。

私の問題は、メッセージを受け取って通知メッセージフォームが表示され、それを閉じる前にメインアプリケーションでモーダルダイアログが開かれた場合、通知メッセージを含むフォームがモーダルダイアログであってもすべての上にあることです。しかし、それはクリック可能ではありません。

いくつかのフォーラムを検索して回答を読みましたが、回答を見つけることができませんでした。

この動作をシミュレートする小さなテスト アプリケーションは、Github にあります。 https://github.com/Oneleg/NotificationMessage

簡単な情報:

NotificationMessage フォームには次のものがあります。

  • FormBorderStyle = なし
  • 最上位 = False
  • Show() で表示されます
  • ShowWithoutActivation() をオーバーロードします
  • WS_EX_NOACTIVATE WS_EX_TOOLWINDOW WS_EX_TOPMOST で CreateParams をオーバーロードします。

これをどのように解決できるかについてのアイデアはありますか?

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

c# - CreateParams が発生 - ウィンドウ ハンドル例外

サイズ変更と読み込み中のちらつきを取り除くために、自分の Tabcontrol で CreateParams を使用しています。CreateParams を実装した空のクラスです。

ラベル、テキストボックス、またはボタンがあり、Windows 7 でうまく機能します。しかし、パネル、tablelayoutpanel、datagridview、および Windows XP がある場合、うまく機能しません。たとえば、datagridview の列は適切な方法で表示されません。

また、現在のシステムが Windows XP の場合、誰かが投稿した次のこともわかりました。しかし、これは私の XP では、ウィンドウの起動前にウィンドウ ハンドル例外が発生します。0x02000000 のみでロードされますが、私が書いたように、列は適切な方法で表示されません。

この例外を取得せずに、ちらつきと統合されたデータグリッドビューに関する回避策を知っている人はいますか?

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

c# - .NETWinforms垂直プログレスバーテキスト

最近、winformsアプリケーションに垂直プログレスバーが必要でした。派生クラスは以下のようになります。プログレスバーにもテキストを追加する必要があります。透明性の問題があるため、ラベルは機能しません。いくつかの調査の後、私は何かを見つけました。ただし、問題は、プログレスバーが垂直であるのに、その上のテキストが水平に表示されることです。私もそれを垂直にする必要があります。どうやってやるの?

ありがとう。

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

.net - ちらつきと「CreateParams」

4か月前からグーグルで検索した後、サブクラス化されたパネルを試した後、ここで2、3回質問した後、他のフォーラムで質問した後、アプリケーションのパネルでちらつきを避けたい...誰も解決策を持っていないが、今日見つけたこの最後の回答の奇跡による解決策:サイズ変更時にピクチャボックスがちらつくのを止める方法はありますか?

そのコード行が実際に何をしているのかを知りたいのですが、そのコードが自分のアプリケーションに対して何をしているのかを理解する必要があります。

ちらつきを避ける良い方法はありますか?

MSDN は次のように述べています。

「CreateParams プロパティをオーバーライドして、派生コントロールのプロパティを調整するために使用しないでください」

しかし、それがパネルのちらつきを実際に解消する唯一の方法であるため、上に投稿したコードについてもっと知りたいのです。すべての順序と、そのサブの利点とマイナス、なんでも大歓迎です...

誰かがそのコードについて詳しく説明してくれますか?

私はすべてのアプリケーションで「ちらつきの解決策」をテストしましたが、はい、ちらつきの解決策です...しかし、私のプログラムは-200%の速度で回転するため、マイナスポイントがあります。つまり、そのオーバーライドサブを使用すると、プログラムが回転しますx6倍のように非常に遅いため、オーバーライドサブをそのまま使用することはお勧めできません。

アプリケーションを激怒させずにちらつきを回避できるかどうか誰かが知っていますか?