投稿日 | : 2004/08/26(Thu) 17:16 |
投稿者 | : Yuuko |
Eメール | : |
URL | : |
タイトル | : Re^4: フォームやコントロールの上に文字を表示する方法。 |
回答 ありがとうございます。
No7334の書き込みにあった 透過フォームを使って下記の様に表示してみましたが
透過フォーム Form2上の文字まで 透過してしまうので Form1の上に文字を書いたと言う効果を出せませんでした。
現在 No7334関連の書き込みにあった おやじさんの BitBltを使用した方法でやってみよと思い
下記のような方法を使ってみました。
Me.Picture2.Visible = False
DoEvents
'Formの画像をクリップボードへ
Clipboard.Clear
keybd_event &H2C, 1, 0, 0
DoEvents
'クリップボードの画像をPicture1へ
Me.Picture1.AutoSize = True
Me.Picture1.AutoRedraw = True
Me.Picture1.Picture = Clipboard.GetData
'Picture1の任意の位置の画像を Picture2へ
Me.Picture2.Visible = True
Me.Picture2.AutoRedraw = False
XX = Me.Picture2.Left
YY = Me.Picture2.Top
BitBlt Me.Picture2.hDC, -5, -24, Me.Picture1.ScaleWidth, Me.Picture1.ScaleHeight, Me.Picture1.hDC, XX, YY, vbSrcCopy
'Picture2に文字を書く・・・と さもformの上に文字を書いたように見える
Me.Picture2.CurrentX = 0
Me.Picture2.CurrentY = 0
Me.Picture2.FontSize = 20
Me.Picture2.ForeColor = vbRed
Me.Picture2.Print Date
Me.Picture2.Print Time
Me.Picture2.AutoRedraw = True
Form の A,B の幅の値はどうやって取れば良いのでしょうか?
============================= ─
||Form1 || ←A
||---------------------------||─
|| ||
|| ------------ ||
|| |Picture2 | ||
|| | | ||
↑
B