テキストボックスとラベルで横の中央揃えはできるのですが、
縦方向の中央揃えができません。
どうやったらできるのでしょうか?
テキストボックスやラベルと等価の物でも構いません教えてください。
補足
私の予想ではBVに標準で入っている機能で実現できると思います。
そう思う根拠は、Winに標準で付いている電卓の値を表示する部分が、
縦の中央揃えになっているからです。
>私の予想ではBV(VB?)に標準で入っている機能で実現できると思います。
できません。
>そう思う根拠は、Winに標準で付いている電卓の値を表示する部分が、
>縦の中央揃えになっているからです。
電卓はVBで作られているわけではありません。
また、VBはWindowsのすべての機能を使えるようには
作られていません。
むしろ、プログラム初心者でも安全に扱えるよう、
かなり制限が設けられています。
VBでは通常は複数のコントロールを組み合わせるなり、
改行を入れるなりして、縦中央揃えのふりをします。
どうしてもWindowsの標準の機能でやりたかったら、
EditBoxをCreateWindowする必要があります。
が、VBでCreateWindowを使うとVBの利点が失われます。
BorlandC++でWindowsSDKを使ったほうがいいでしょう。
ちなみに、LabelはTextBox(EditBox)と異なり
WindowではありませんのでCreateWindowできません。
返答ありがとうございます。
『中央揃えのふり』の方でやってみます。
SAYさんの言う通り電卓はVBではないですね。
Winの標準でVBランタイム入ってないですし、、、
ええと…。
C言語(電卓とか)でできてることは、ほとんどVBでもできるはずです。
ということで、PictureBoxを作って、その中に、PrintやDrawTextでうまく計算しながら文字を描いて、
文字が変更されるときにはいったん中身をけしてから描きなおして…。
そうやってやればだいじょうぶです。ただ、そのあいだでもたつくと、ちょっとちらつくので、うまくちらつかないようにします。
(TextOutというAPIを使えば、文字を描いたまわりを四角形で塗りつぶすこともできるとか)
VBのLabelとかも、中ではそういうことをやってるのかなぁとか思います。
VBからでは直接あやつることはできないものの、"フォームの一部だけ描きなおす"ということも、
Windows自体はできるようですから。
ツイート | ![]() |