■ VB6のクラスモジュールでWinsockコントロールの動的配置について

[Visual Basic Q & A 掲示板] [過去ログの一覧]


てつ 2006/01/24(火) 12:19:38
VB6でWinsockコントロール型のクラスモジュールを作成しようとしています。
そこでクラスの初期化で、フォーム上にWinsockコントロールを動的に配置しようと思うのですが、Controls.Addの第一引数にどのような文字列を指定すればよいのかわかりません。コマンドボタンの場合は、"VB.CommandButton"と指定するようですが、そもそも各コントロールに該当するこの文字列はどのようにして調べればよいのでしょうか?
どなたかご教授宜しくお願いいたします。

Private WithEvents ClassSock As Winsock
Private Sub Class_Initialize()
    Set ClassSock = Form1.Controls.Add("?????", "winsock1")
End Sub

魔界の仮面弁士 2006/01/24(火) 12:43:09
> この文字列はどのようにして調べればよいのでしょうか?
ヘルプに調べ方が書いてありますが、それでは駄目ですか?
http://www.microsoft.com/japan/developer/library/vb98/vbmthaddmethod(controlscollection).htm

魔界の仮面弁士 2006/01/24(火) 12:46:22
あら、括弧があるとうまくリンクされないようで。

これなら良いかな?
http://www.microsoft.com/japan/developer/library/vb98/vbmthaddmethod%28controlscollection%29.htm

てつ 2006/01/24(火) 15:00:52
[[解決]]

魔界の仮面弁士さま、ご回答ありがとうございます。
VB6付属のヘルプは参照していたのですが、オンラインヘルプの方はチェックしておりませんでした。
以下のようにすることでWinsockコントロールの動的配置ができました。
Set clsSock = Form1.Controls.Add("MSWinsock.Winsock.1", "winsock1")
ありがとうございました。

魔界の仮面弁士 2006/01/24(火) 15:30:01
> VB6付属のヘルプは参照していたのですが、
> オンラインヘルプの方はチェックしておりませんでした。

えぇと。(^^;)

付属のヘルプに書いてあるのと、まったく同じ内容だと思いますよ。
MSDN の目次から辿るのであれば、こちらですね。

[Visual Studio 6.0 ドキュメント]
└[Visual Basic ドキュメント]
 └[リファレンス]
  └[ランゲージ リファレンス]
   └[メソッド]
    └[A]
     └[Add メソッド (Controls コレクション)]


アドレスでいえば、こちらになります。
(パス部分は、お使いの環境に合わせて読み替えてください)
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN\2001OCT\1041\vb98.chm::/html/vbmthaddmethod(controlscollection).htm

# MSDN Library for Visual Studio 6.0 が手元に無いため、上記は
# MSDN Library 2001 年 10 月版 の場合のアドレスです。

てつ 2006/01/24(火) 18:04:43
魔界の仮面弁士さま、ご丁寧なご回答ありがとうございます。

>付属のヘルプに書いてあるのと、まったく同じ内容だと思いますよ。

なるほど、そうでしたか(^^;)
IDEのエディタ上で、addメソッドをクリックして[F1]押下で表示されるヘルプ内容にしか目を通しておりませんでした。。。

結局ヘルプで説明されているオブジェクトブラウザでWinsockオブジェクトを選択して、ライブラリ名を調べて"MSWinsockLib.Winsock"のように記述したのですがエラーとなり、そのエラーメッセージの内容から"MSWinsock.Winsock.1"がProgIDであることが判明した次第でした(^^;)

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library