問題タブ [hwnd]
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.
windows - 英語のタイトル バーを持つ Win32 ウィンドウ アプリを作成しますが、タイトル バーがどこからともなく中国語になります。どうして?
Win32 Window アプリケーションのチュートリアルに従っています。上記のコードは、ウィンドウ画面のタイトル バーの名前を設定するために使用されます。コンパイラは私に怒鳴ります:「'const char [12]' から 'LPCWSTR' に変換できません」ただし、実行時に、ウィンドウ画面のタイトルが漢字になります。文字列を変えてみましたが、どういうわけか、漢字は常に文字列に応じて変化します。XP Visual C++ 2008 Express Edition を使用していますが、非 Unicode プログラムの設定として英語 (米国) を取得しました。理解できません。文字列が中国語になるのはなぜですか?
vb6 - VB6の現在のウィンドウ/フォームのhWndを取得しますか?
VB6で現在のウィンドウ/フォームのhWndを取得するにはどうすればよいですか?
wpf - WebBrowser コントロール上に Adorner を表示する
アプリのさまざまなことに System.Windows.Controls.WebBrowser を使用していますが、WebBrowser に表示されるはずの装飾が切り取られていることに気付きました。WebBrowser コントロールは実際には COM コンポーネントのラッパーであり、おそらくレンダリングが異なることを認識していますが、これを解決する方法を誰かが理解しているかどうか疑問に思いました。
これが私が見ている問題です。ここでは、何かの上隅に (サンプルとして) 大きな赤い円を描画することになっているサンプル adorner を示します。
これで WebBrowser を装飾すると、次の結果が得られます。
私は完全な円を見ることを期待しています。
役立つ場合に備えて、この価値のない装飾者のコードを次に示します。
そして、これをホスト コントロールの OnRender メソッドでブラウザーに適用する方法を次に示します。
これに対するハックや回避策はありますか?
編集:それが違いを生む場合、私は.NET 4.0を使用しています。
編集 #2: WebBrowser は HwndHost から継承しているように見えます。これは、アドナーと hwndsources に関する別の質問を 1 つまたは 2 つ見たことがありますが、WebControl に実装できるように見えるものは何も見られませんが、うまくいけば、これは有益な情報です誰か。
wpf - 途中でHWNDの子とのWPFレンダリングの問題
WPFはそのコンテンツをウィンドウの背景としてレンダリングすると言っても過言ではありません。従来のHWNDの意味での子ウィンドウはありません。そのため、WebBrowserなどのWPFアプリに基づくHWNDを導入すると、外観の点で問題が発生し始めます。
WebBrowserとTextBoxなどの2つの子を持つグリッドを持つウィンドウについて考えてみます。代わりにWebBrowserが赤い円の場合、TextBoxはその上にレンダリングされます。WebBrowserの場合、TextBoxはどこにも見つかりません。これは、TextBoxがメインウィンドウの背景としてレンダリングされ、WebBrowserが実際にはメインウィンドウのHWNDの子であり、背景を覆い隠しているためです。
したがって、すべてがうまくいっています(そうではありません)。どのようにして望ましい振る舞いを達成しますか?WebBrowserの上にTextBoxをレンダリングしたい。誰かがこの問題に遭遇しましたか?
私は、2番目の透明なトップレベルのボーダレスWPFウィンドウを作成し、メインウィンドウがそれを所有するように親を再設定し、それを実現するために他のトリックを実行することを考えています。
掘り下げる前に、誰かが明白なまたはより単純な解決策を持っているかどうか疑問に思いましたか?
Meleakによる更新
Ray Burns Answerの実装を投稿できる人なら誰にでも、この報奨金を提供していますAirRepair
。私は自分で試しましたが無駄でした
c++ - Direct2Dレンダリングターゲットを完全に透明にクリアするにはどうすればよいですか
見えないHWNDに半透明の長方形を描画しようとしています。ただし、ウィンドウをクリアするとウィンドウID2D1HwndRenderTarget::Clear
全体が黒くなるので、上に長方形を描くと半黒に見えます。
Clear()を実行せず、描画しない場合、ウィンドウは表示されません。Clear()が原因です。しかし、私がそれを使わないと、絵はかなりひどく台無しになります。
WindowProcで使用しているコードは次のとおりです。
前もって感謝します!
c++ - フォーカスされていないときの Direct2D ウィンドウの黒
フォーカスがあるとうまく描画される Direct2D ウィンドウがあります。ただし、フォーカスが別のウィンドウ (同じアプリケーションまたは別のアプリケーション) に移動すると、ウィンドウ全体が黒くなります。問題を の使用に突き止めましたID2D1HwndRenderTarget::Clear
。この機能は私のアプリケーションにとって不可欠です。
フォーカスされていない Direct2D ウィンドウを通常どおりに描画する方法はありますか (注:WM_PAINT
は通常どおり呼び出され、そのままClear
、BeginPaint
など、すべてエラーなしで呼び出されます)
前もって感謝します。
winforms - 描画の問題は ShowWindow(hWnd, SW_HIDE) によって四角形が自動的に無効になりますか?
子ウィンドウを含むウィンドウがあるという問題が発生しています。子ウィンドウには、Windows Media Player を使用してビデオを再生している別の子ウィンドウが含まれています。親ウィンドウで ShowWindow (hWnd, SW_HIDE) を呼び出してサーフェス全体をペイントしても、孫ウィンドウ (ビデオが再生されていた場所) が占める領域はオーバーライドされません。私はspy ++を使用しましたが、オーバーライドされていない領域は、再描画が発生する前に非表示に設定されていることがわかりました。
孫ウィンドウの hwnd を監視しましたが、WM_EraseBKGND または WM_NCPAINT メッセージを受信していないようです。これは、それが占有していた領域が無効化されていなかったため、引き継ぎができなかったということですか? 私はwinformsが初めてです。
ありがとう!
c++ - win32でツールバーボタンのビットマップを変更するには?
ウィンドウ内で ReBar を使用して、いくつかのコントロールを含むツールバーを作成しました。誰か教えてください
- ボタン/コンボボックス/その他(ウィンドウ内の通常のボタンではない)のIDを(のみ)知っている場合、そのHWNDを取得するにはどうすればよいですか?
- リソースの ID がわかっている場合に HBITMAP を取得するにはどうすればよいですか?
コントローラにビットマップを設定するには?
SendDlgItemMessageW(hWnd, nId, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);
これはツールバーでは機能しませんね。私はそれを行う方法を見つけることができませんでした、私を助けてください。ありがとうございました...
よろしく
編集:誰かお願いしますか?:(
編集:わかりました。最近はみんな忙しいようです。:(ところで、それは間違った質問ですか?
c# - アンマネージド HWND の子としてのマネージド フォーム
System.Windows.Forms.Form をアンマネージ C++ HWND の子ウィンドウとして表示する必要があります。これは、NativeWindow を取得する C# SDK コードです。
プラグインでの実装方法は次のとおりです。
これは機能します....ほとんどの場合。しかし、このコードを初めて呼び出すときにも失敗することがよくあります。
HWND エラー http://www.freeimagehosting.net/uploads/f29bc27823.png
もう一度呼び出してください。すべて正常に動作します。どうしたの?!?
c# - 特定の hWnd がまだ有効かどうかを確認するにはどうすればよいですか?
Internet Explorer のインスタンスを生成するサードパーティ クラスを使用しています。このクラスには、プロセスの hWnd を返すプロパティ hWnd があります。
後で、アプリケーションのインスタンスがまだ存在する場合は再利用したい場合があるため、ヘルパー クラスにアタッチするように指示する必要があります。それを行う前に、指定された hWnd がまだ有効かどうかを知りたいです。そうでない場合は、別のインスタンスを生成します。
C# & .NET 3.5 でこれを行うにはどうすればよいですか?