ほっぷと言います。宜しくお願いします。
環境:Win2000 VC6.0SP5 SDK
ダイアログにエディットボックスを配置して使用しています。
そのエディットボックスに入力出来るサイズ(バイト数)を変更したいのですが、
方法がわかりません。
エディットボックスのプロパティーのスタイルを”複数行”に設定して
入力すると、30Kまでのサイズしか入力出来ません。
リッチエディットを使用しないで、エディットボックスで
入力可能サイズを増やしたいと思っています。
自分なりに調べたやり方でいろいろ試してはいるのですが、
結果は全く変わりません。
以下に試したコードを記載します。
---------------------------------------------------------------------------
// ID_EDIT_BOX : エディットボックスのID
HINSTANCE hInstance
HWND hDlg // ダイアログハンドル
HWND hEdit; // エディットボックスのハンドル
HLOCAL hl;
HLOCAL hlAloc;
hInstance = (HINSTANCE)GetWindowLong(HWND_DESKTOP,GWL_HINSTANCE);
hDlg = CreateDialog(hInstance, DLG_DATA, 0, (DLGPROC)dlgproc);
hEdit = GetDlgItem(hDlg, ID_EDIT_BOX);
hl = (void *)SendMessage(hEdit, EM_GETHANDLE, 0, 0);
LocalFree(hl);
hlAloc = LocalAlloc(LMEM_MOVEABLE, 1024*1000); // 領域確保
SendMessage(hEdit, EM_SETHANDLE, (unsigned int)hlAloc, 0); // サイズ設定
---------------------------------------------------------------------------
デバッグしたところ各ハンドルは取得出来ていると思われ、
特にエラーとなっている箇所はありませんでした。
手順がおかしいのでしょうか?
それともこの方法は全く検討違いなのでしょうか?
どなたかご教授宜しくお願いします。
エディットボックスの入力文字制限はSetLimitTextメンバ関数で指定できます。
ソレで指定してもダメでしょうか?
> エディットボックスの入力文字制限はSetLimitTextメンバ関数で指定できます。
SDKなのでメンバ関数は使用できませんが、
”EM_SETLIMITTEXT”を使用する事によって解決しました。
ひろぴーさんのアドバイスがヒントになりました。
有難う御座いました。
> SDKなのでメンバ関数は使用できませんが、
あ、SDKの記述を見逃しておりました。すみません。
でも、解決してよかったです。