Delphiを使ってCreateWindowExでES_PASSWORDのEditボックスを作ったんです。他のコンポーネントはDelphiのをぺたぺたはっつけたのです。
で、いくつか問題が発生しました。
- 表示がクラシックになってしまう→WM_CREATEをとっ捕まえて、そこでCreateWindowExを使うと、クラシックにならない。
- 背景色がおかしい→WM_CTLCOLORをとっ捕まえて、メッセージのメンバ、Resultにブラシを返せばいい。
- デフォルトのフォントがでかい。OnCreateでフォームのフォントのハンドルをEditにSendMessageすればいい。
ここまでは試行錯誤でなんとかなりました。しかし、タブキー移動だけはどうもうまく動かなかったのです。で、ふと、幅が0のDelphiのEditボックスをはっつけてOnEnterでWindows.SetFocusで飛べないかなぁと。
半分正解でした。タブキー移動はできるようになったのです。しかし、矢印キーはちゃんと動かないようです。が、ま、いっか。
あっけなかったです。メッセージトラップもうまくいかず、フックをするしかないかなぁと。まぁ、なんだ。難しいことやらずに済んだ。タブキーだけのために、貴重な時間を割くところだったよ。