問題タブ [cwnd]

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

c++ - MFC: CSplitterWnd Caret とは一体何ですか?

CSplitterWnd クラスのコンテキストでキャレットとは一体何ですか? CSplitterWnds に明示的に関連するドキュメントが見つかりません...

編集:具体的には、これらの関数は実際に何をしますか:

EDIT2:注意してください、私はキャレットが何であるかを知っています.CSlitterWndクラスのコンテキスト内の機能について具体的に尋ねています. MSDN のドキュメントを見たことがありますが、実際の説明はありません。

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

mfc - 再描画されない WS_EX_TRANSPARENT スタイルの静的コントロール

32 ビット ビットマップの描画中に、ピクセルごとのアルファ ブレンドを実装するコントロールを作成しようとしています。

CWnd を拡張し、リソース エディターで静的コントロールを使用します。アルファ チャネルを正しくペイントできましたが、静的コントロールは灰色の背景をペイントし続けます。

コントロールが背景を描画しないように OnEraseBkgnd を上書きしましたが、うまくいきませんでした。WS_EX_TRANSPARENT を使用して、最終的にそれを行うことができました。

私の問題は、私のコントロールが他のコントロールの上に配置されていることです。ダイアログが最初にペイントされたときはすべて正常に動作します...しかし、「親」コントロール (つまり、自分のコントロールの下にあるコントロール) をクリックすると、コントロールは WM_PAINT メッセージを受け取りません。そのため、もう塗装されていません。

アプリケーションを最小化して再度最大化すると、コントロールが再び描画されます。

誰かヒントを教えてください。私はこのコントロールに夢中になっています!!!

ありがとう。

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

winapi - DLGTEMPLATE から CWnd 派生コントロールへ

DLGTEMPLATE を取得して、それを他の CWnd に配置するための CWnd 派生コントロールとして使用することは可能ですか?

CDockablePanes の 1 つで使用したいダイアログ テンプレートがあります。

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

mfc - コントロールがいつ非表示になるかを知る方法

カスタム実装のツールチップ システムを持つ CWnd オブジェクトから派生したコントロールがあります。ツールチップは CDialog を使用して実装され、正常に動作しますが、いつ非表示にする必要があるかを知るのに問題があります。

ツールチップは、マウスをコントロールの上に置くと表示され (WM_MOUSEHOVER)、マウスがコントロールから離れると非表示になります (WM_MOUSELEAVE)。ここまでは順調ですね。問題は、コントロールが設定されているダイアログがメニューから非表示になる可能性があることです (破棄されず、メニューから再度表示できます)。これが発生すると、WM_MOUSELEAVE イベントはコントロールに送信されず、ツールチップは削除されません...新しいダイアログの上に表示されます。

私の質問は: コントロールが隠されていることを知る方法はありますか? コントロールが設定されているダイアログの WM_SHOWWINDOW メッセージをキャプチャできることはわかっていますが、コードを追加しなくても他の場所でコントロールを使用できるように、コントロール自体から実行したいと考えています。

前もって感謝します!

ハビエル

0 投票する
4 に答える
5052 参照

mfc - MFCメッセージを別のオブジェクトにリダイレクトする方法は?

CWndから派生したクラスのインスタンスでは、可能なメッセージごとに個別のハンドラーとメッセージマッピングを記述せずに、すべてのMFCメッセージを別のオブジェクトに転送(リダイレクト)することは可能ですか?具体的には、未処理のWM_メッセージをすべて別のオブジェクトに転送したいと思います。これが不可能な場合、オブジェクトが他のオブジェクト内で発生するイベントをリッスンすることは可能ですか?それが私の質問を明確にするのに役立つならば、私は詳細を提供することができます。

ありがとう。

0 投票する
4 に答える
3890 参照

mfc - CWnd::FromHandleから取得したCWndの寿命は?

msdnによると、CWnd::FromHandle で CWnd* を取得すると、

ポインターは一時的なものである可能性があり、後で使用するために保存しないでください。

「後で使用する」の意味がわかりません。それは現在の方法の範囲だけですか?私の知る限り、Win32 には GC がありません!

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

window - CDialog派生クラスからウィンドウハンドルを取得するにはどうすればよいですか?

CDialog派生クラス(CWnd :: m_hWndメンバーなど)からウィンドウハンドルを取得する方法はありますか?

ありがとう

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

windows - ウィンドウ デスクトップを自分のアプリケーション ウィンドウ CWnd に置き換える方法

GetDesktopWindow() を使用して Windows デスクトップにペイントしようとしました。しかし、デスクトップが急速に再描画され、ペイントが表示されないため、失敗しました。したがって、GetDesktopWindow() で取得したデスクトップ ウィンドウを ownerdraw アプリケーション ウィンドウに置き換える必要があります。

前もって感謝します, ミラン

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

c++ - UpdateWindow() を呼び出した後でもペイント メッセージが失われるのはなぜですか?

次のウィンドウ階層を持つアプリケーションがあります。

W2 で特定のイベントが発生すると、次のように呼び出しますUpdateWindow

W2のOnPaint処理は次のようになります。

しかし、W2 でペイント メッセージが失われることがあります。UpdateWindow呼び出されますが、呼び出される対応するOnPaint()はありません。

プロパティを W1 (W2 の親) に追加するとWS_EX_TRANSPARENT、常にペイント メッセージが W2 で受信されます。

しかし、WS_EX_TRANSPARENTフラグを追加する際の問題は、ウィンドウ W1 のサイズを変更すると、多くのちらつきが発生することです。

私の質問は次のとおりです。 1. ペイント メッセージが失われる W2 の何が問題なのですか? 2.追加WS_EX_TRANSPARENTするとペイントの問題が解決する理由。3. フラグが使用されている場合、ちらつきの問題を解決するにはどうすればよいですか。

ありがとう、