ボタンのサイズをイメージにあわせる

解決


める  2008-02-18 22:15:34  No: 100308

お世話になります。
Commandボタンに対してイメージを貼り付けて
イメージボタンを作成しようとしています。

cmdInfoSel.Picture = LoadPicture(FileName)

で読み込みは出来るのですが、ボタンのサイズを
イメージサイズにしようとしても正しいサイズに
なってくれません。

cmdInfoSel.Height = cmdInfoSel.Picture.Height
cmdInfoSel.Width = cmdInfoSel.Picture.Width

ボタンのサイズもイメージのサイズもtwips単位(?)で
指定するのですよね?

イメージをボタンのサイズに合わせる場合はオーナー
ドローが必要であるのは分かりましたが、ボタンの
サイズをあわせる場合も特別に何か必要な処理が
あるのでしょうか?

環境はVB6です。よろしくお願いします。


VBレスキュー(花ちゃん)  2008-02-19 16:22:09  No: 100309

>cmdInfoSel.Height = cmdInfoSel.Picture.Height
>cmdInfoSel.Width = cmdInfoSel.Picture.Width

>ボタンのサイズもイメージのサイズもtwips単位(?)で
>指定するのですよね?

どこで、twips単位 に変換しているのでしょうか?
Picture.Width  は、HiMetric (0.01 ミリメートル単位) 単位になりますので
twips単位 に変換するには下記のようになります。

   With Command1
    '  .Style = vbButtonGraphical
      .Picture = LoadPicture("c:\test.jpg")
      .Width = Me.ScaleX(Command1.Picture.Width, 8, vbTwips)
      .Height = Me.ScaleY(Command1.Picture.Height, 8, vbTwips)
   End With


める  2008-02-19 18:58:37  No: 100310

お返事遅くなりました。
回答ありがとうございます。

>どこで、twips単位 に変換しているのでしょうか?
サイズを表す単位が全てtwipsであると思い込んでました。

ボタンのサイズを示すcmdInfoSel.Heightの値はtwipsなんですよね?
cmdInfoSel.Picture.Heightってtwipsではないのでしょうか?

やりたい動作は実現しましたので、解決と致します。
ありがとうございました。


魔界の仮面弁士  2008-02-19 19:26:35  No: 100311

> ボタンのサイズを示すcmdInfoSel.Heightの値はtwipsなんですよね?
Twip 単位系の時もあれば、そうでない時もあります。
(単位系は、親コンテナの ScaleMode プロパティに依存します)

> cmdInfoSel.Picture.Heightってtwipsではないのでしょうか?
Picture オブジェクトの Width, Height は、常に HiMetric 単位系です。
VB6 ヘルプの下記の項目を参照してみてください。

[Visual Studio 6.0 ドキュメント]
└[Visual Basic ドキュメント]
  ├[Visual Basic の仕様方法]
  │└[プログラミング ガイド]
  │  └[Visual Basic を使ってできること]
  │    └[テキストおよびグラフィックスの操作]
  │      └☆[座標系]
  │        ├☆[オブジェクトの座標系の変更]
  │        └☆[スケールの変換]
  └[リファレンス]
    └[ランゲージ リファレンス]
      └[プロパティ]
        └[H]
          └★[Height、Width プロパティ]


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加