MSNメッセンジャーのようなポップを表示するには?


BIOPRIN  2004-09-16 13:16:57  No: 85589  IP: [192.*.*.*]

いつも利用させていただいています。

(バルーンを表示する方法を教えていただき、成功しました。)

これとは別に、MSNメッセンジャーなどにログインすると「○通のメールが来ています」などと画面の右下に表示されます。あとは、ウィルスバスターやノートンアンチウイルスなんかが同じような表示を出します。

これを出したいと思うのですが、どんな機能を使っているのでしょうか??
お願いします。

編集 削除
たかみちえ  URL  2004-09-16 20:38:06  No: 85590  IP: [192.*.*.*]

えーっと、お久しぶりに出現しますが。たかみちえです。
さて—

  MSNのバルーンですけど、おそらく特にこれといった機能は使っていないと思いますよ、
ボーダーを隠したフォームをモードレスとして、デスクトップの右下などに表示し、タイマーで一定時間がたったら隠します。隠し方にはいろいろありますが、リージョンを使って徐々に非表示にするなどすればよいのだと思います。

  使用しているVBのバージョンについてかかれていませんが、VB6でもVB.NETでも同じです。

編集 削除
BIOPRIN  2004-09-18 13:52:54  No: 85591  IP: [192.*.*.*]

ありがとうございます。やってみます。

・モードレス
・リージョン
について勉強してみます。

フォームを消すことはできるのですが、徐々に下から上がってくるような(アニメーションのような?)ものもやはりタイマーでフォームの位置を調整すれば実現可能なのでしょうか?メッセンジャーの新着メール表示などはスムーズに動くのですごいなと思いまして。

具体的に今回やってみたいのはたとえばホームページ巡回ソフトのようなもので音などは必要なく、フォームをアクティブにすることなく(それまでの操作に支障なく)情報画面を最前面に出してみたいと思っています。
少し贅沢を言えば、それをクリックしたら何らかの操作を実現できればいいなと思っています。(巡回ソフトだったら更新ホームーページを表示するとか)

WinXPsp2/VB6sp6

編集 削除
たかみちえ  URL  2004-09-18 17:43:40  No: 85592  IP: [192.*.*.*]

そうですね、タイマーを使わなくても、Sleepでもいいと思いますので、何度かに分けてサイズ変更していけば、だいたいの要求は満たせると思います。
  Height = 200
  Sleep(80)
  Height = 180
  Sleep(80)
  Height = 160
  Sleep(80)
    ・
    ・
    ・
  のようにですね。
  ただ、フォームのリサイズでごまかすのだと、以前やってみましたがあまりきれいになりません。そこで、リージョンを使ってリサイズの代わりに非表示にすることを提案しました。

  VB6を使ってらっしゃるのですね、それでしたら、VBのプロパティから、ボーダーを表示しない設定にするだけではダメだったと思います(結局非クライアント領域が見え、見た目が悪い)。
SetWindowLongでウィンドウのスタイルを適当に変更する必要がありそうです。

編集 削除