問題タブ [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.
c++ - WM_SETFOCUS、フォーカスを失ったばかりのアプリを入手
WTL C ++アプリケーションがアクティブ化されたとき、またはキーボードフォーカスを取得したとき、以前にアクティブ化された/フォーカスがあったアプリケーションのウィンドウハンドルを判別する必要があります。WM_SETFOCUS
ただし、とWM_ACTIVATE
メッセージの両方のウィンドウハンドル(LPARAM)は両方NULL
(XP、32ビット)です。
アプリケーションがアクティブ化されたときにフォーカスを失ったアプリケーションを特定するにはどうすればよいですか?これを行う簡単な方法はありますか、それとも特別なCBTフックを巻く必要がありますか?
c++ - mfc以外のアプリのdllからリソースを強制的にロードするWTLの方法は?(ストレートwin32ではなくWTL / ATLを使用しています)
以前にこの質問を投稿し、ローカライズされた文字列(LoadString()で取得した文字列)をロードしましたが、サテライトDLLから他のすべてのリソースもロードする必要があります。
MFCにはAfxSetResourceHandle()呼び出しがありますが、mfc以外のアプリと同等のものが必要ですか?すべてのリソースが別のDLLからロードされるように、初期化コードのどこかにそれを設定する必要があると思います。WTL(Windowsテンプレートライブラリ)コンテキストでこれを行うにはどうすればよいですか?
編集:
これは私たちの問題を要約したものです。
私たちはストレートwin32を使用していませんが、Windows用のATLとWTLを使用しています。そのため、MFCに依存することはできず、メニューやダイアログリソースの読み込みを低レベルで制御することもできません。
編集:うーん... これには答えがあるようですが、私はそれよりも良いものを望んでいました。たとえば、CAppModuleオブジェクトのGetResourceInstance()に類似したSetResourceInstance()メソッド。
c++ - 新しいアイテムが追加されたら、clistviewctrlをwtlでスクロールします
新しいアイテムが追加されたら、リストビューの最後までスクロールしたい。WTLのCListViewCtrlを使用しています。新しいアイテムを追加してスクロールするための私の関数は次のとおりです。
n
は単なるグローバル変数です:
この関数は、まったくスクロールしないことを除けば、機能します。
Scroll
wtlでソースを調べましたが、問題ないようです。
では、なぜスクロールしないのですか?やってみたn+1
、等…
c++ - TVN_SELCHANGINGが受信されません
WTL81アプリを持っています。CMainFrameには子CPaneContainerがあり、子ウィンドウCTreeViewCtrlがあります。問題は、CTreeViewCtrlがTVN_SELCHANGINGメッセージを受信しないことです。
CTreeViewCtrlとその親(CPaneContainer)を「スパイ」しましたが、通知コードが受信されません。
CMainFrameはパブリックから実装されますCFrameWindowImpl<CMainFrame>
CPaneContainerはこのように実装されています
ツリーはこのように実装されます
OnDblClick-正常に動作します
OnItemExpanding-正常に動作します
OnSelChanged- 動作しません
何が問題になる可能性があるかについてのアイデアはありますか?
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の両方を使用できますか?
c++ - C++ プログラムがタスク バーからのタイル/カスケード ウィンドウに応答しない
C++ (古い学校の Win32 と WTL のハイブリッド) で複雑なプログラムを使用していますが、これはタスク バーのタイル/カスケード要求に応答しません (つまり、タスク バーを右クリックし、[Cascade Windows] または [Show window side by side] を選択します)。 . spy++ を使用すると、他のプログラム (この場合は Firefox) が一連の WM_GETMINMAXINFO、WM_SIZE、WM_PAINT を取得する一方で、どのウィンドウもウィンドウ メッセージを受信していないことがわかりました。
私のフレーム ウィンドウは、WS_OVERLAPPEDWINDOW としてスタイル設定されています。フレーム ウィンドウを作成する前に、いくつかの非表示のウィンドウを作成します。複数の異なる OS でテストしましたが、症状は同じです。Windows シェルがフレーム ウィンドウにメッセージを送信するための制限や前提条件はありますか?
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を使用するかどうかに関係なく、このコードを引き続き使用する方法について誰かがアイデアを持っている場合は、私に手を貸してください。
ありがとう、そしてハッピーイースター!
c++ - サイズ変更を伴う WTL レイアウト
WTL の知識が豊富な人が次のようなものを作成する方法を知りたいです。
2 つの「領域」を含む、サイズ変更可能な (-> WS_THICKFRAME) ダイアログ。1 つの領域は、サイズ変更時に y 方向に拡大し、互いに等高さの間隔 (たとえば、領域の高さの 0%、25%、50%、75%、および 100%) で配置する必要があるいくつかのコンポーネントを含みます。
他の領域は下にあり、高さが固定されています。サイズを変更すると、両方の領域が x 方向に拡大するはずです。
ここでの重要な質問は次のとおりです。a) これらの 2 つの領域に使用するコンテナーなど b) サイズ変更の処理方法 (DLGRESIZE_CONTROL では、コントロールを等間隔に配置することはできません。たとえば、afaik)
ありがとう。
c# - C# Winforms タイムライン コントロール (WTL から ?)
プロジェクト (Winforms/C#) の 1 つにタイムライン コントロールが必要ですが、ゼロから作成する方法が本当にわかりません。私は自分が欲しいものの視覚的なアイデアを持っています。以下のリンクに似たもの
http://www.codeproject.com/KB/wtl/wtltimeline.aspx
Winforms プロジェクトで WTL を直接使用することは可能ですか? そうでない場合、Winforms で使用するために WTL コードから C# コードに移行するのは簡単ですか。私のプロジェクトのほとんどはWinformsで完了しているため、Winformsから離れることはできません。
同じことに関する私の他の質問は、このリンクにあります: C# タイムライン コントロール
プロジェクトの説明とタイムライン コントロールの要件が少し改善されました。
助けてください。ありがとう!:)
c++ - プロパティ シート ページのハンドラーからスローされた例外
プロパティ シート ページのハンドラー (たとえば、OnInitDialog ハンドラー) 内ではなく、最上位アプリケーションの try-catch ブロックによって例外をキャッチして処理したいと考えています。したがって、以下のコードでは、これらの例外は catch (...) ブロックで処理されることになっています。
ただし、OnInitDialog が例外をスローすると、Windows デストラクタの実行後に (デバッグ モードで) アサートが表示されます。CMyPropertySheet デストラクタで EndDialog(m_hWnd, IDCANCEL) を呼び出しても、アサートは残ります。不足しているものや間違っているものを検出するのを手伝っていただけますか? WTLを使用しています。私のプロパティ シート claa は、CPropertySheetImpl から派生しています。
ありがとう。