知らない間にコントロールが重複するのをふせぐには? – プログラミング – Home

知らない間にコントロールが重複するのを...
 
通知
すべてクリア

[解決済] 知らない間にコントロールが重複するのをふせぐには?


まゆたん
 まゆたん
(@まゆたん)
ゲスト
結合: 24年前
投稿: 27
Topic starter  

こんにちは。またわからないことがあります。

わたしは今、タブコントロールを使って、
タブ切り替えできるダイアログを作ってるんですけど、
こんな作り方をしちゃいました(もうあとにはひけない)。

1:タブコントロールの中に、いっぱい
  他のコントロール(ボタンとかエディットボックスとか。)
  を、「不可視」で貼り付けます。
2:タブ札がクリックされたイベントを拾って、そのタブ札毎に、
  コントロールを表示します。

それで、いったん別のダイアログに、タブごとのコントロールを
非難させて(その間にタブオーダーとかつけました)、
最後に一気に全部タブの上に貼り付ける。ってやりました。

そんなことをやってると、いつのまにかコントロールのIDとか
変わったり、(非難ダイアログでは、「IDC_EDIT27」だったのに、
ホンモノのダイアログでは「IDC_EDIT49」になったりします。
でも、他のコントロールはちゃんとしてる。)

ちなみに、ホンモノのダイアログは、タブとその外のコントロール以外、
ぜんぶ削除したのです。だから、「コントロールIDが重複するから、別の
IDが付けられた」ってことはないと思うんだけどなぁ・・・。
それで、クラスウィザードのメンバ変数のところを見ると、
確かにその幽霊コントロールはいました。実際に、コントロールIDを
「IDC_EDIT27」に変えようとすると、「重複するIDをもつコントロールが
あります」ってメッセージもでました。
でも、どこにもそんなコントロールはいないのに(涙)。
cpp・hファイルのメンバ変数の記述も消したのに(涙)。
デバッグフォルダの中身も全部消したのにぃ(涙)。

今思えば、「ぷろパティシート」を使えばよかったです(遅)。

たぶん、こんなやり方したわたしが悪いんですけど、
何かお気づきになった方、
幽霊コントロールがどこにいるか分かる方、
教えてください。お願いします。


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

1.
ダイアログを表示してプロパティを表示して常に表示ボタンをオンにする。
その後、ダイアログにフォーカスを設定して
キーボードのTabキーを押せば、順々にコントロールを巡回してくれる。
2.
メニューの「表示」-「シンボルブラウザ」でダイアログを表示し
気になるシンボル名をクリック、そこで表示ボタンを押すとコントロールに
フォーカスが設定される
「使用済みにチェックが付いていない物を削除する」
なんてのが必要な情報なのかな?


返信引用
まゆたん
 まゆたん
(@まゆたん)
ゲスト
結合: 24年前
投稿: 27
Topic starter  

kuさん、ホントにいつもありがとうございます。
「シンボルブラウザ」で、使用されてないコントロールを
削除することができました。
これで自由にコントロールIDを変更することができます。

シンボルブラウザには、今まで作った覚えのあるコントロールが
いっぱいありました。
コントロールにフォーカスを当てて「削除」ってしても、
ホントに消えたわけではないのですね。
じっさいに、メンバ変数も残ってたし。

まだまだ、VC++開発ツールにはわたしの知らない機能が
いっぱいあるんだなぁ・・・。

kuさん、ありがとうございました。
いつもいつも助けられてばかりだけど、
わたし、がんばりますので、
これからもよろしくお願いします。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

メンバ変数を作ったのにコントロールだけ削除するのはまずいですね。
コントロールを削除するとメンバ変数も削除してくれる機能はありません。

メンバ変数まで作ってしまった場合は、
メンバ変数->コントロール
の順で削除すればIDも消えてくれると思いました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました