ピクチャボックス1に表示させたテキストを
ピクチャボックス2に拡大表示させるには
どのようにしたらよいのでしょうか。
イメージを表示させた場合はわかるのですが、
テキストを表示させたピクチャボックスの拡大の方法が
わかりません。
よろしくお願いいたします。
作業環境はwindows2000 visual basic6.0です。
…普通に、たぶんPaintPictureでできない?
編集 削除いちゆさん、回答ありがとうございます。
PaintPictureではピクチャボックス1に読み込んだイメージ(*.bmp等)を
ピクチャボックス2に拡大表示することはできるのですが、
ピクチャボックス1に表示したテキストや線図を拡大することは
可能なのでしょうか?
試してみたのですが、「ピクチャが不正です」というエラーが出てしまいます。
ん〜、どういうコード書いたかわからないから…どうしようもない。
StretchBltAPIを使ったほうが、hDCを使うから混乱しないかも。
まぁ、これ以上なんともいえません。
いちゆさん、度々の回答ありがとうございます。
以下のようなプログラムでやっております。
Private Sub Command1_Click()
Text1.Text = "あいうえお"
Picture1.Print Text1.Text
Picture2.PaintPicture Picture1.Picture, 0, 0, 400, 400
End Sub
Picture1.Picture→Picture1.Image にしてみて?
…実は今、実行環境ないから正確なことがいえないけど。
多分、Picture1.PictureはStdPicture関係のクラスのインスタンスを参照していないから、
こういうエラーが出ているんだと思う。
Picture1.PictureをPicture1.Imageとして
実行してみたところ、「ピクチャが不正です」というエラーは
でなくなりましたが、ピクチャボックス2には何も
表示されませんでした。
ピクチャボックスのプロパティの値を色々と変えてみたりしたの
ですが、やっぱりうまくいきません。
PaintPictureでは無理なのでしょうか。
・Pictureプロパティに画像を指定してあった場合は、「ピクチャが不正です」というエラーにはなりません。
・「描画」した内容は、Pictureプロパティではなく、Imageプロパティに保持されます。
・Imageプロパティを使う場合は、AutoRedrawプロパティをTrueにしておく必要があります。
魔界の仮面弁士さん、回答ありがとうございます。
ピクチャボックス2のAutoRedrawプロパティをTrueにはしていたのですが、
ピクチャボックス1のAutoRedrawプロパティをFalseにしていたため、
何も表示されていませんでした。Trueにすることで
ピクチャボックス2にピクチャボックス1で表示された
テキスト「あいうえお」が拡大されて表示されました。
ありがとうございました。
ただ、Picture2.PaintPicture Picture1.Image, 0, 0, 400, 400とした場合
文字が縦長になってしまうのですが、それは何故なのでしょうか。
Picture2.PaintPicture Picture1.Image, 0, 0, 400, 100位ですと
ちょうどよい感じになります。
マニュアルを読むと400と100の値の意味はそれぞれ
「描画する部分の幅と高さ」となっていて、*.bmp等のイメージファイルで
あれば、400,400でうまくいくのですが。
ピクチャボックス1及び2のScaleModeの単位はピクセルでやっています。
自己レスです。
ピクチャボックス2にピクチャボックス1の文字を
拡大・縮小させるには、ピクチャボックス1の文字画像データを
正確に取得?する必要があったみたいです。
以下のようにすることでうまくできました。
どうもありがとうございました。
Private Sub Command1_Click()
Text1.Text = "あいうえお"
Picture1.Print Text1.Text
With Picture1
P1W = .ScaleWidth
P1H = .ScaleHeight
End With
With Picture2
P2W = P1W * 4
P2H = P1H * 4
Picture2.PaintPicture Picture1.Image, 0, 0, P2W, P2H
End With
End Sub