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

c++ - WM_SETFOCUS、フォーカスを失ったばかりのアプリを入手

WTL C ++アプリケーションがアクティブ化されたとき、またはキーボードフォーカスを取得したとき、以前にアクティブ化された/フォーカスがあったアプリケーションのウィンドウハンドルを判別する必要があります。WM_SETFOCUSただし、とWM_ACTIVATEメッセージの両方のウィンドウハンドル(LPARAM)は両方NULL(XP、32ビット)です。

アプリケーションがアクティブ化されたときにフォーカスを失ったアプリケーションを特定するにはどうすればよいですか?これを行う簡単な方法はありますか、それとも特別なCBTフックを巻く必要がありますか?

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

c++ - mfc以外のアプリのdllからリソースを強制的にロードするWTLの方法は?(ストレートwin32ではなくWTL / ATLを使用しています)

以前にこの質問を投稿し、ローカライズされた文字列(LoadString()で取得した文字列)をロードしましたが、サテライトDLLから他のすべてのリソースもロードする必要があります。

MFCにはAfxSetResourceHandle()呼び出しがありますが、mfc以外のアプリと同等のものが必要ですか?すべてのリソースが別のDLLからロードされるように、初期化コードのどこかにそれを設定する必要があると思います。WTL(Windowsテンプレートライブラリ)コンテキストでこれを行うにはどうすればよいですか?

編集:

これは私たちの問題を要約したものです。

私たちはストレートwin32を使用していませんが、Windows用のATLとWTLを使用しています。そのため、MFCに依存することはできず、メニューやダイアログリソースの読み込みを低レベルで制御することもできません。

編集:うーん... これには答えがあるようですが、私はそれよりも良いものを望んでいました。たとえば、CAppModuleオブジェクトのGetResourceInstance()に類似したSetResourceInstance()メソッド。

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

c++ - 新しいアイテムが追加されたら、clistviewctrlをwtlでスクロールします

新しいアイテムが追加されたら、リストビューの最後までスクロールしたい。WTLのCListViewCtrlを使用しています。新しいアイテムを追加してスクロールするための私の関数は次のとおりです。

nは単なるグローバル変数です:

この関数は、まったくスクロールしないことを除けば、機能します。

Scrollwtlでソースを調べましたが、問題ないようです。

では、なぜスクロールしないのですか?やってみたn+1、等…

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

c++ - TVN_SELCHANGINGが受信されません

WTL81アプリを持っています。CMainFrameには子CPaneContainerがあり、子ウィンドウCTreeViewCtrlがあります。問題は、CTreeViewCtrlがTVN_SELCHANGINGメッセージを受信しないことです。

CTreeViewCtrlとその親(CPaneContainer)を「スパイ」しましたが、通知コードが受信されません。

CMainFrameはパブリックから実装されますCFrameWindowImpl<CMainFrame>

CPaneContainerはこのように実装されています

ツリーはこのように実装されます

OnDblClick-正常に動作します
OnItemExpanding-正常に動作します
OnSelChanged- 動作しません

何が問題になる可能性があるかについてのアイデアはありますか?

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

c++ - BEGIN_MSG_MAPとBEGIN_MSG_MAP_EXで混同されています

バグを追跡していますが、ルートがWTLマクロを使用している可能性があると思われます。* _EXを使用する場合、および通常のマクロを使用する場合。BEGIN_MSG_MAP_EXについては、atlcrack.hに注記があります。

しかし、残りの部分やマクロはどうですか?たとえば、同じBEGIN_MSG_MAP_EXでCOMMAND_ID_HANDLERとCOMMAND_ID_HANDLER_EXの両方を使用できますか?

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

c++ - C++ プログラムがタスク バーからのタイル/カスケード ウィンドウに応答しない

C++ (古い学校の Win32 と WTL のハイブリッド) で複雑なプログラムを使用していますが、これはタスク バーのタイル/カスケード要求に応答しません (つまり、タスク バーを右クリックし、[Cascade Windows] または [Show window side by side] を選択します)。 . spy++ を使用すると、他のプログラム (この場合は Firefox) が一連の WM_GETMINMAXINFO、WM_SIZE、WM_PAINT を取得する一方で、どのウィンドウもウィンドウ メッセージを受信して​​いないことがわかりました。

私のフレーム ウィンドウは、WS_OVERLAPPEDWINDOW としてスタイル設定されています。フレーム ウィンドウを作成する前に、いくつかの非表示のウィンドウを作成します。複数の異なる OS でテストしましたが、症状は同じです。Windows シェルがフレーム ウィンドウにメッセージを送信するための制限や前提条件はありますか?

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

c++ - VS Expressを使用する場合は、コンソールアプリでCStringを使用します

CStringを使おうとすると問題が発生します。

VS2010Expressを使用して作成されたコンソールアプリケーションがあります。使用したいコードがありますが、CStringを使用しています。適切なヘッダーatlstr.hを含めようとすると(私が知る限り)、有名なエラーが発生します:ソースファイルを開くことができません。しばらくゴーグルした後、一般的には可能であるように思われますが、atlstr.hはExpressユーザーには利用できません。質問:

1)そうですか?2)どういうわけかこの問題を回避できますか?

以下はコードです(起源:http ://www.cprogramming.com/tutorial/ado_c++_wrapper_classes.html )

CStringを使用するかどうかに関係なく、このコードを引き続き使用する方法について誰かがアイデアを持っている場合は、私に手を貸してください。

ありがとう、そしてハッピーイースター!

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

c++ - サイズ変更を伴う WTL レイアウト

WTL の知識が豊富な人が次のようなものを作成する方法を知りたいです。

2 つの「領域」を含む、サイズ変更可能な (-> WS_THICKFRAME) ダイアログ。1 つの領域は、サイズ変更時に y 方向に拡大し、互いに等高さの間隔 (たとえば、領域の高さの 0%、25%、50%、75%、および 100%) で配置する必要があるいくつかのコンポーネントを含みます。

他の領域は下にあり、高さが固定されています。サイズを変更すると、両方の領域が x 方向に拡大するはずです。

ここでの重要な質問は次のとおりです。a) これらの 2 つの領域に使用するコンテナーなど b) サイズ変更の処理方法 (DLGRESIZE_CONTROL では、コントロールを等間隔に配置することはできません。たとえば、afaik)

ありがとう。

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

c# - C# Winforms タイムライン コントロール (WTL から ?)

プロジェクト (Winforms/C#) の 1 つにタイムライン コントロールが必要ですが、ゼロから作成する方法が本当にわかりません。私は自分が欲しいものの視覚的なアイデアを持っています。以下のリンクに似たもの

http://www.codeproject.com/KB/wtl/wtltimeline.aspx

Winforms プロジェクトで WTL を直接使用することは可能ですか? そうでない場合、Winforms で使用するために WTL コードから C# コードに移行するのは簡単ですか。私のプロジェクトのほとんどはWinformsで完了しているため、Winformsから離れることはできません。

同じことに関する私の他の質問は、このリンクにあります: C# タイムライン コントロール

プロジェクトの説明とタイムライン コントロールの要件が少し改善されました。

助けてください。ありがとう!:)

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

c++ - プロパティ シート ページのハンドラーからスローされた例外

プロパティ シート ページのハンドラー (たとえば、OnInitDialog ハンドラー) 内ではなく、最上位アプリケーションの try-catch ブロックによって例外をキャッチして処理したいと考えています。したがって、以下のコードでは、これらの例外は catch (...) ブロックで処理されることになっています。

ただし、OnInitDialog が例外をスローすると、Windows デストラクタの実行後に (デバッグ モードで) アサートが表示されます。CMyPropertySheet デストラクタで EndDialog(m_hWnd, IDCANCEL) を呼び出しても、アサートは残ります。不足しているものや間違っているものを検出するのを手伝っていただけますか? WTLを使用しています。私のプロパティ シート claa は、CPropertySheetImpl から派生しています。

ありがとう。