[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/06/14(Wed) 17:52
投稿者名:ぺそみ
Eメール:
URL :
タイトル:
コントロールの一括移動について
いつもお世話になっております。
開発環境は Windows XP/VB6.0(SP6) です。

複数のUserControlをAPI関数を使用して一括移動させたいと考えております。
(API関数:「BeginDeferWindowPos」と「DeferWindowPos」と「EndDeferWindowPos」)
実行した結果、画面上は一括移動されているのですが、
実際のコントロール位置が変更されません。

何が原因で実際のコントロール位置が変更しないのか分かりません。
分かる方がおいででしたらご教授お願いいたします。

投稿時間:2006/06/14(Wed) 20:23
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: コントロールの一括移動について
> 何が原因で実際のコントロール位置が変更しないのか分かりません。

WindowとActiveXコントロールとは、関連こそがありますが別々に
管理されています。

貼り付けられているForm側で管理するコードを書くのであれば、
Controlsプロパティを使うのが簡単でしょう。

そうではなく、そういう機能を持つActiveXコントロールを作る、と
言うのであれば、コントロールサイトのIOleContainer.EnumObjects
から各コントロールを取得して、IOleInPlaceObject.SetObjectRects
などを使うことになります。

投稿時間:2006/06/15(Thu) 09:38
投稿者名:ぺそみ
Eメール:
URL :
タイトル:
Re^2: コントロールの一括移動について
K.J.Kさん、ご回答ありがとうございます。

「IOleContainer.EnumObjects」と「IOleInPlaceObject.SetObjectRects」の
がよく分かりませんので少し勉強してから試したいと思います。

ありがとうございました。