1行入力のリッチエディットのウインドを作りました。
入力文字をセンタリングするにはどういう方法がありますか?
>1行入力のリッチエディットのウインドを作りました。
どこにどうやって作ったかを明記しましょう。
>入力文字をセンタリングするにはどういう方法がありますか?
出来なかったと思います・・
>入力文字をセンタリングするにはどういう方法がありますか?
ワードパッドが出来るんだから出来るはず。
MFC なら CRichEditCtrl::SetParaFormat とかです。たぶん。
>ワードパッドが出来るんだから出来るはず。
>MFC なら CRichEditCtrl::SetParaFormat とかです。たぶん。
確かにワードパッドは出来ますが、ワードパッドは1行入力ではありません(複数行)
1行入力のリッチエディットコントロールでは、入力文字をセンタリング出来ません
> 1行入力のリッチエディットコントロールでは、入力文字をセンタリング出来ません
試してみましたが、1行入力でもCRichEditCtrl::SetParaFormatでセンタリング出来まし
た。
確かに、リッチエディットプロパティダイアログでは、複数行をチェックしないとテキスト配
置のコンボボックスが有効になりませんが、上記の関数を使えば可能です。
あら・・、出来るんですか?
.dwMask = PFM_ALIGNMENT;
.wAlignment = PFA_CENTER;
で指定したけど変わらなかったから駄目かと思ったのですが・・
どう指定すると変わるのですか?
ちょっと試すだけのつもりだったので、MFCでダイアログにリッチエディットコントロールと
プッシュボタンを貼り付けて、ボタンクリックするとセンタリングするようにつくってみたので
すが。指定の仕方は、不良PGさん と同じです。どういう状況だと駄目なのでしょう?
ちなみにOSは、何で試しましたか?
この辺りってNT系と9x系で違いがあったような気がします・・(バグとか・・)
私は、VC6.0-SP5(NT4.0WS-SP6a)ですが・・
> ちなみにOSは、何で試しましたか?
Windows2000で VC++6.0 SP5 です。
Windows XPで試してみたら出来ました(^^;
Windows 2000以降では、出来るようですね
あとついでにWindows Meも試しましたが、駄目でした。
本当ですね。私もNTで試してみましたが、センタリング出来ませんでした。
こんなところにOSの制限があるとは。確認できて良かったです。
となると思いつくのは複数行で作って、改行を入力できなくする。(ペースト時も含めて)
といったところでしょうか。
>となると思いつくのは複数行で作って、改行を入力できなくする。(ペースト時も含めて)
>といったところでしょうか。
そんなところでしょうが・・
1行で済むのならリッチエディットを無理に使わなくてもいいような気がするのは、私だけ?
>1行で済むのならリッチエディットを無理に使わなくてもいいような気がするのは、私だけ?
ねぇ。
色やフォントを文字単位で設定したくてなおかつユーザー入力が必要なら、
リッチエディットを使う価値もあるでしょうが。
あとRTFを読み込んで表示する場合とか。
その辺どうなんでしょう? > spark さん
複数行で作って、改行を入力できなくする
というのもいいかもしれませんねー。
それまで思いつく方法は、入力文字の幅を調べて
左をスペースで埋める方法。見栄えはまあまあだけど
文字列に余計なスペースが入るし、ソースを書くのが面倒。
他に、透明なセンタリングのエディットボックスに文字を書き、
その下にリッチエディットを表示させるとか。
なぜリッチエディットなのかというと、
hREWnd = CreateWindowEx(WS_EX_CLIENTEDGE,RICHEDIT,",
WS_CHILD | WS_VISIBLE | SS_CENTER,
10,20,30,40,hWnd,NULL,hInst,NULL);
SendMessage(hREWnd, EM_SETBKGNDCOLOR, (WPARAM)0, (LPARAM)255);
これでエディットボックスの背景色を指定しているからです。
これではSS_CENTERが無効でした。
エディットボックスの背景色の指定とセンタリングが
同時に指定したくて、できなくて悩んでいる最中なんです。
MFCを知らないのですが、MFC なら CRichEditCtrl::SetParaFormat
というのはSDKだと別の書き方でできるのですか?