【VB.NET2008Exp+FW3.0】バルーンのようなものを表示させたい
- 題名: 【VB.NET2008Exp+FW3.0】バルーンのようなものを表示させたい
- 著者: 罠師
- 日時: 2010/03/02 17:03:19
- ID: 26492
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 【VB.NET2008Exp+FW3.0】バルーンのようなものを表示させたい
- 著者: Hongliang
- 日時: 2010/03/02 17:50:49
- ID: 26493
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 【VB.NET2008Exp+FW3.0】バルーンのようなものを表示させたい
- 著者: 罠師
- 日時: 2010/03/02 19:08:56
- ID: 26495
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
先日はお世話になりました。
おかげさまで無事開発は進んでおりますが、またひとつ問題が出てきてしまいました。
可能な限り自分でも調べてみたのですが、どうしてもわからないのでご教授頂きたく存じます。
作成しているのはいわゆるP2P系のチャットソフトです。
これで例えばForm1で入力や送信を制御し、ログを表示しているとします。
この時、相手側から緊急コールがあった場合、それをバルーンとしてForm2などに
大きく表示したいのです。
しかし、Form2.Visible=TrueやForm2.Showでは、Form2がアクティブになり
フォーカスが移動してしまうため、Form1での作業が中断してしまったり
変換中の入力が消えてしまったりします。
頻繁なやり取りがあるチャットソフトでこれは好ましくないため
どうにかForm2を非アクティブで(フォーカスを移動させずに)表示したいのですが
何か方法はありませんでしょうか?
ShowWindowというAPIがあるところまではこぎつけましたが、
SW_SHOWNAを指定してもウィンドウが表示されません……。
現在、サンプルを作成していろいろと挑戦中ですが、何かよい方法があれば
お教えください。
Public Class Form1
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const SW_SHOWNA = 8
Public Const SW_HIDE = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ret As Long
ret = ShowWindow(Form2.Handle, SW_HIDE)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ret As Long
ret = ShowWindow(Form2.Handle, SW_SHOWNA)
End Sub
End Class