VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -