3ds MAX (2013/2014) のプラグインを作成しています。私のプラグインには、モードレスダイアログと Win32 Edit Controlがあります。エディット コントロールでテキストを編集しようとしたときにダイアログを表示した後、テキストが更新されません。編集キャレットはテキスト ボックスにあります。
spy++ を試してみたところ、すべてのキーボード イベントWM_KEYDOWN、WM_CHAR、およびWM_KEYUPが編集コントロールによって処理されていることがわかります。
実はエディット コントロールでキーを押すと、3ds MAX のキーボード ショートカットが有効になります。
ダイアログの種類をModalに変更すると、編集コントロールは完全に機能します。3ds MAX が提供する編集コントロール ( ICustEdit ) は、モードレス ダイアログで正常に機能します。
私のエディット コントロールはカスタマイズされたものです (複数行をサポートし、行数に応じて高さを変更します)、ICustEdit を直接使用することはできません。
SetWindowPosを使用して ICustEdit のサイズと位置を変更しようとしましたが、機能しませんでした (コントロールが見えなくなりました:))。
結論として、2 つの質問があります。
- Win32 Edit コントロールが機能しないのはなぜですか?
- 通常のエディット コントロールのように、ICustEdit をサブクラス化し、そのサイズと位置をコードから変更する方法はありますか