none
EditコントロールでEnterを押すと警告音が鳴る RRS feed

  • 質問

  • EditコントロールでEnterを押すと警告音が鳴ります。ES_AUTOVSCROLLやES_MULTILINEを使っていない1行のEditなので、

    改行ができずに警告音が鳴るというのはわかっているのですが、VK_RETURNで処理をしたいので、この警告音を鳴らないようにしたいです。方法を知っている方がいたら教えてください。

    使用しているのはC言語。マルチバイト文字セット使用。

    2007年12月16日 0:26

回答

  • 自己スレですが、解決方法がわかったので記述します。

    Editをサブクラス化して、Editのプロシージャ内の、WM_CHARのVK_RETURNでreturn 0;として、デフォルトの動作をさせなければ良いようです。

    以下に、Editのプロシージャを記述します。

    LRESULT CALLBACK NewEditProc(HWND hEdit,UINT msg,WPARAM wp,LPARAM lp){

     switch(msg){

      case WM_KEYDOWN:

       if(wp == VK_RETURN){

        やりたい処理を記述;

       }

       return 0;
      case WM_CHAR:
       if(wp == VK_RETURN){
        return 0;
       }
       break;
     }
     return CallWindowProc(old_EditProc,hEdit,msg,wp,lp);
    }

    2007年12月18日 2:40