これは私が理解したことがない古い問題です - ここの誰かがたまたまあなたの頭の上から答えを知っているのではないかと思いました...
私たちのソフトウェア (MFC/Win32/MBCS) の一部では、私のコードは受信のみを行います
TTN_NEEDTEXTW
ソフトウェアの他の部分では、MBCS の正しいメッセージを受け取ります
TTN_NEEDTEXTA
私には意味がありません。
私たちのソフトウェアは Unicode でコンパイルできるかどうかは理解しています (マルチバイト文字セットを使用するように設定されています)。そして、各ウィンドウを Unicode で構成できるかどうかは漠然とした記憶がありますが、これは漠然とした記憶であり、具体的なものではありません。
マルチバイトとしてコンパイルされているにもかかわらず、コードの一部の場所でワイド バージョン メッセージが表示される理由を知っている人はいますか?
ノート:
- このメッセージは絶対に送信していません。おそらく ToolTip コントロールが送信しています。
- ある場所では間違いなく (W) メッセージだけを受け取り、他の場所では間違いなく (A) メッセージだけを受け取ります。
- 私は、すべてのコンパイル モジュールが Unicode ではなく MBCS を使用していること、およびビルド ターゲットがすべて Unicode ではなく MBCS を指定していることを確信しています。
- これは、CMainFrame でホストされているウィンドウとコントロールでのみ発生するようです。つまり、メイン フレームの外側にある Windows は、ナロー バージョンを使用できます (ダイアログ ボックスなど)。