- 01: 名前:MARK-X投稿日:2004/10/27(水) 16:12
- いつも拝見しております。
VB6で作ったExeをカスタムツールバーにボタンを
追加して実行しているのですが、
VB6上のフォームがモーダル表示されません。
単純な方法で存在するのかもしれませんが
最近始めたばっかりなもので・・・
ご教授願います。
- 02: 名前:yoda投稿日:2004/10/27(水) 16:23
- >VB6上のフォームがモーダル表示されません。
どういう意味でしょうか?
- 03: 名前:MARK-X投稿日:2004/10/27(水) 17:03
- VB6で作ったフォームを表示させた後、後ろのVisio本体を
クリックするとVB6の画面がVisioの後ろに回ってしまうんです。
Visioにもともと付属しているデータベースウィザードのように
データベースウィザード画面が表示されている場合は、Visioの図形を
クリックしてもデータベースウィザード画面は最前面に表示させたい
んですが・・・
- 04: 名前:yoda投稿日:2004/10/27(水) 18:28
- windows api に、
「ウィンドウを常に手前に表示 」
というのがありますが、これでは、
どうでしょうか?
たとえば、このサイトなどが
参考になるかも知れません。
http://hp.vector.co.jp/authors/VA017912/winapi/wintpmst.html [source] [check]
- 05: 名前:MARK-X投稿日:2004/10/27(水) 19:15
- レスありがとうございます。
たしかにAPIを使用すれば可能ですね。
Visio側のツールバー設定するあたりとか、
Applicationオブジェクトにモーダルの設定が
あるのかなとちょっと思ってみたんですが・・・
ないようですね。
ありがとうございました。
- 06: 名前:yoda投稿日:2004/10/27(水) 19:58
- そういう意味では、VBAの方が、ずっと楽ですね。
- 07: 名前:yoda投稿日:2004/11/25(木) 13:41
- かなり遅いレスですが、
Windows API の SetParent を使うと、
VB6 のForm を、Visio の子ウインドウに
することが出来、手前に表示できます。
逆に、VB6 の Form に、Visio をはめ込むことも
出来そうです。
サンプルプログラムは、
Option Explicit
Private Declare Function SetParent Lib "user32.dll" _
(ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private appVso As Visio.Application
Private doc As Visio.Document
Private Sub Command1_Click()
If Not appVso Is Nothing Then Exit Sub
Set appVso = New Visio.Application
Set doc = appVso.Documents.Open _
("full path\filename.vsd")
End Sub
Private Sub Command2_Click()
Dim WinhWnd As Long
Dim oldhwnd As Long
WinhWnd = FindWindow(vbNullString, appVso.Window.Caption)
oldhwnd = SetParent(Me.hwnd, WinhWnd)
End Sub
Private Sub Command3_Click()
appVso.ActiveWindow.Activate
End Sub
Private Sub Command4_Click()
appVso.ActiveWindow.Zoom = 0.8
End Sub
Private Sub Command5_Click()
On Error Resume Next
SetParent Me.hwnd, 0&
doc.Close
appVso.Quit
Set appVso = Nothing
End Sub
Private Sub Command6_Click()
Unload Me
End Sub
Private Sub Command7_Click()
SetParent Me.hwnd, 0&
End Sub
- 08: 名前:yoda投稿日:2004/11/26(金) 12:58
- Setparentを使ったVB6.0の例をアップロードしました。
ここです。
http://www.mster.co.jp/visiosquare/cgi-bin/upload/image/101.lzh [source] [check]
- 09: 名前:yoda投稿日:2004/11/28(日) 17:13
- 101.lzhの改訂版をアップロードしました。
少しは、ましになったかも知れません。
ここです。
http://www.mster.co.jp/visiosquare/cgi-bin/upload/image/103.lzh [source] [check]
■トップに戻る リロード 単独スレ表示
|