問題タブ [wtl]

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 に答える
889 参照

winapi - Win32/WTL-チェックボックスのイメージリストの状態がチェックされていない状態に戻ります

DirectShowアプリのビデオコントロールを保持するために、WTLでカスタムウィンドウを作成しています。

「プッシュのような」方法(BS_PUSHLIKE)で動作させたいチェックボックスのセットを作成しました。これらは、次のようにダイアログの.rcファイルで定義されて表示されます。

ボタンの画像リストもロードしました。これは、ボタンがLButtonDown状態とLButtonUp状態にあるときに適切な画像を正しく表示します。

以下のコードでは、m_btnVid1はWTL::CBitmapButtonとして定義されています

マウスボタンを離すとすぐに、チェックボックスの状態が「チェックされていない」状態に戻ります。

IDC_VID1コントロールにCOMMAND_ID_HANDLER_EXを追加して、コントロールの状態を判別しましたが、nState変数は常に0を読み取ります。

これがなぜであるかを誰かが提案できますか?CBitmapButtonに作成スタイルがありませんか?

それが役に立ったら、どういうわけかオンラインでVC2008ソリューションファイルを投稿できると確信しています。

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

winapi - 所有者の描画リストボックスのDrawItemメソッドを呼び出せないのはなぜですか

WTLを使用して所有者描画リストボックスを作成しようとしています。私のコードは次のようになります

また、親のメッセージループに追加REFLECT_NOTIFICATIONSし、プロパティシートで[所有者の描画]を[固定]に設定しました。しかし、それでもメッセージを受信できません。次に、spy ++を使用してリストボックスが受信するメッセージを調べたところ、非常に奇妙なメッセージが見つかりました(WM_USER+7211)。
私のOSはWinXpで、VS2008を使用しています。

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

winapi - 最小化または復元時にWM_SIZEメッセージが表示されない

MSDNによると、ウィンドウが最小化または復元されたときに、WM_SIZEをウィンドウに送信する必要があります。しかし、WTL CDialogImplである私のアプリケーションウィンドウは、最小化または復元時にWM_SIZEを取得しません。

spy ++を使用してチェックします。WM_SYSCOMMAND、WM_WINDOWPOSCHANING、WM_ACTIVE、WM_ACTIVEAPPなどを取得できますが、WM_SIZEは取得できません。

他のいくつかのWTLサンプルアプリケーションを確認しました。最小化または復元すると、WM_SIZEメッセージを取得できます。

私の質問は、WTL CDialogImplウィンドウがWM_SIZEを受け取らないのはなぜですか?これに加えて、復元または終了を最小限に抑えることを示す他のメッセージはありますか?つまり、システムでは、ほとんどの場合、最小化/復元プロセスを示すアニメーションがあります。復元時にアニメーションが完了したことをアプリに知らせるメッセージまたはイベントが必要です。

ありがとう!

ウィリアムL.

0 投票する
3 に答える
8767 参照

c++ - WS_EX_COMPOSITEDによるちらつきのないタブコントロール

WTL8.1を使用して開発されたWindowsXPSP3用のVS2008C++アプリケーションがあります。私のアプリケーションには、アプリケーションの境界線のサイズが変更されたときにちらつくタブコントロールが含まれています。

私のウィンドウ階層は次のようになります。

私が試している解決策は、CFrameWindowImpl派生クラスにWS_EX_COMPOSITEDスタイルを使用させ、その下のすべてのウィンドウにスタイルを使用させることWS_EX_TRANSPARENTです。残念ながら、これにより、タブコントロールボタンが空の黒いバーとして表示され、構成ビューのコントロールがまったく表示されなくなります。

WS_EX_COMPOSITEDWS_EX_TRANSPARENTスタイルを削除すると、フォームは正しく表示されますが、CTabViewサイズを変更すると、その下のすべてがひどくちらつきます。

ちらつきをなくし、コントロールを適切に描画するには、何を変更する必要がありますか?

ありがとう、PaulH


編集:動作しました。WS_EX_TRANSPARENTMarkRansomの提案に従ってすべてのスタイルを削除しました。(内に含まれる)のみWS_EX_COMPOSITEDスタイルを配置します。他のコントロールは、必要に応じてを介してダブルバッファリングを取得します。CTabCtrlCTabViewWTL::CDoubleBufferImpl<>

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

atl - ATLまたはWTLでメニュー項目のクリックイベントを発生させる方法は?

現在、ON_WM_SELECT messgaeを使用していますが、メニューの上にマウスを置くと起動します。

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

c++ - WTLまたはWindowsSDK(MFCなし)を使用してTitleAreaDialogを作成するにはどうすればよいですか?

WTLまたはWindowsSDKを使用してTitleAreaDialogを作成しようとしています(MFCは使用しないでください)。グーグルから私はこれらの2つのリンクを見つけることができます:

  1. http://www.codeproject.com/KB/dialog/dialogheader.aspx(MFCの記事)
  2. http://www.codeproject.com/KB/dialog/taskdialogs.aspx (疑わしい..使用方法)

必要な出力は、Eclipse JFace TitleAreaDialogのようなものです(下の画像を参照)。

タイトルエリアダイアログ

singWTL​​またはWindowsSDK(c ++を使用)を使用してこれを行う方法を提案してください。

ありがとう

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

windows - SendDlgItemMessage を使用する必要がありますか、それとも WTL にラッパーがありますか?

というダイアログ リソースに Listbox コントロールを追加しましたIDC_LIST1。を使用してこのコントロールと対話する必要SendDlgItemMessage()がありますか、または WTL を使用するより良い方法はありますか? これが私のイベントハンドラーです。それはまだ派手なものではありません!

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

c++ - Windows メッセージ ループと WTL

私は WTL の仕組みを理解しようとしていますが、メッセージ ループが今私を混乱させています。

たとえば、次のコード フラグメント:リンク

最初にウィンドウが作成され、その後メッセージ ポンプが開始されます。なぜそれが機能するのですか?CreateEx、UpdateWindow などは、WM_CREATE/WM_PAINT/WM_NCPAINT のような独自の目に見えないメッセージを送信することになっていませんか? メッセージ ポンプが初期化されていない場合、メッセージはどこにスローされますか? ウィンドウを作成し、メッセージ ループを開始してからウィンドウを閉じた後、その場所に新しいウィンドウを作成したい場合はどうなるでしょうか。PostQuit はループを終了し、新しいものを作成する必要がありますか?

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

visual-studio-2010 - VC++ 2010 テンプレート typedef typename エラー

プロジェクトを VC++ 2010 に移行しようとしています プロジェクトにはファイル TabbedMDI.h (Danial Bowen 作) が含まれており、"named の後に '::' が続く場合、"typedef typename TClient: :TTabCtrl TTabCtrl;"

コードスニピットが続きます

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

c++ - WTL/Winapi のメッセージ ハンドラー内からのモーダル ウィンドウ

バックグラウンド処理を行うメッセージのみの WTL ウィンドウを持つ小さなアプリケーションがあります。しかし、状況によっては、モーダルとして動作するウィンドウを表示したい場合があります。つまり、ユーザーがボタンをクリックするまで、メッセージのみのウィンドウのメッセージ ハンドラーは返されません。

私はこのようにできると思っていました(疑似コード):

しかし、試してみると、ウィンドウは問題なく作成されますが、キーを押すと、通常のウィンドウのように1文字ではなく、モーダルウィンドウの編集ボックスに数十文字が出力されます。

おそらく私は何か間違ったことをしているのですが、何が正しいアプローチであるべきかわかりません。モーダル ウィンドウは完全にコード生成されています。