まったくの初心者です。
vbではテキストボックスやボタンのように、「フレーム」っていうのがあったとおもうんですが、vcではないんでしょうか?
グループボックスでしょうか?
お答えありがとうございます。
グループボックスの場合、その上に、コントロールをのせても、
グループボックスをドラッグしても、コントロールはそのままなのですが、
こんなものですか?
ダイアログエディタでは、そんなものみたいですねー。
>>ダイアログエディタでは、そんなものみたいですねー。
ダイアログ以外になんかあるんでしょうか?
グループボックスとはその名の通り、複数のコントロールをグループ化するためのボックスです。
VB や C# のダイアログエディタでは、個々のコントロールをグループボックスの子ウィンドウとして作成することにより、グループボックスを移動することで、中のコントロールも移動されます。
が、VC++ のダイアログエディタでは、グループボックスは見た目それっぽく見せているに過ぎず、実際のグループ化はタブオーダーに基づいて行われます。
本来、グループボックスとはこういうものらしいので、VB や C# は親切に中のコントロールまで移動させてくれましたが、VC++ ではそういうものだと割り切った方がいいようです。
シャノンさん、ありがとうございます。
だいたい、わかりましたが、「実際のグループ化はタブオーダーに基づいて行われます。」というのは、どういうことですか?
タブオーダーとは、キーボードの Tab キーをポンポン押していくと、コントロール間をフォーカスが移っていく順番…というのは大丈夫ですか?
VC++ のダイアログエディタでは、上部メニューの「書式」の中に、タブオーダーを設定する項目があります。
これを選択すると、ダイアログ上のコントロールに数字が付くと思いますが、この数字の順番にフォーカスが移ることになります。
で、ダイアログ上のコントロールのプロパティを見ると「Group」というのがあるとおもいます。
このプロパティを True にしたコントロールが、一連のグループの最初のコントロールになります。
その後、タブオーダーの順番に従って、グループ内のコントロールには Group に False を設定しておき、グループ外の最初のコントロールで、また Group を True にします。
例えば、グループボックスが2つあり、それぞれの中にラジオボタンが3つずつあり、タブオーダーが順番に振られていたとしますと
グループボックス1
ラジオボタン1 タブオーダー1 Group True
ラジオボタン2 タブオーダー2 Group False
ラジオボタン3 タブオーダー3 Group False
グループボックス2
ラジオボタン4 タブオーダー4 Group True
ラジオボタン5 タブオーダー5 Group False
ラジオボタン6 タブオーダー6 Group False
こんな風に設定することで、ラジオボタンをグループ化(1〜3の中で一つだけ、4〜6の中で一つだけ選択可能)できます。
Group を True にしたコントロールから、タブオーダーにしたがってコントロールを順番に見て行き、それらの Group が False である間を、一連のグループとして扱うわけです。
例えば、上のケースで、ラジオボタン3の Group を True にしてしまうと、ラジオボタン1と2がグループ、ラジオボタン3は単独のグループ、4〜6は一連のグループとして扱われますので、1と3の同時選択とかが可能になります。
このとき、1〜3がグループボックスで囲まれていることは、見た目の意味しかありません。
シャノンさん、ありがとうございます。
よくわかりました。
私は、VB暦は長いのですが、VCはかなり使いにくそうですね。
がんばって勉強します。
ツイート | ![]() |