none
Windows XPのビジュアルスタイルでのエディットコントロール RRS feed

  • 質問

  • VC++ 6.0で作成したアプリケーションをXPのビジュアルスタイルで表示できるように変更したところ、

    エディットボックスの入力値の制限が、バイト数から文字数に変わってしまい、

    全角文字の入力制限が出来なくなりました。

    回避方法をご存知の方いましたら、ご教授よろしくお願いします。

    2007年6月12日 6:14

回答

すべての返信

  • > VC++ 6.0で作成したアプリケーションをXPのビジュアルスタイルで表示できるように変更したところ、

    とありますが、Manifestの有無だけで動作が変わりますか?
    (UNICODEビルドに変更するとそのように変わるかもしれません。)

    2007年6月12日 7:23
  • 早速の回答ありがとうございます。

    変更箇所はプロジェクトにmanifestファイルを追加し、

    RC2ファイルに以下の行を追加し、コンパイルしただけなのですが・・・

      #define CREATEPROCESS_MANIFEST_RESOURCE_ID      1
       #define RT_MANIFEST                             24
       CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "プロジェクト名.exe.manifest"

    お気づきの点がありましたらご教授よろしくお願いします。

    2007年6月13日 1:17
  • そのMinifestファイルを削除すると、文字数ではなくバイト数になりますか?
    もし、そうだとすると、ComCtrl Ver6 のエディットコントロールの不具合と
    言い切っていいと思います。
    なお、Manifestを使用しない場合、ComCtrl Ver5 が使用されています。

    不具合だとすると。。自分でキー関係のメッセージを捕まえて、
    処理するしかないでしょうね。
    2007年6月13日 3:09
  • ご回答ありがとうございます。
    Minifestファイルを削除すると、文字数ではなくバイト数になります。

    「EM_LIMITTEXT」で検索してみると
    http://support.microsoft.com/default.aspx?scid=kb;ja;418099
    にたどり着きました。
    どうやら仕様のようです。
    がんばってサブクラス化してみます。
    ありがとうございました。

    2007年6月13日 4:57