アクティブなMDI子ウインドウハンドルの使い方?

解決


白いパン  2004-11-28 09:56:37  No: 117848

環境: WINDOWS XP  ,  VB6
質問:初めまして。初心者ながらもHTMLエディタの作成に挑戦しています。
  ReDim FormX(1 To FormCnt)
  NewFormCnt = NewFormCnt + 1
  If CloseFormCnt <= 0 Then
    NewFormCnt = 1
  End If
  FormX(FormCnt).Caption = "無題" + Str(NewFormCnt)
  CloseFormCnt = CloseFormCnt + 1
  FormX(FormCnt).Show
のようにしてForm1を基に新規作成メニューで
いくつもフォームを作れるようにし、
子フォームが全てアンロードされた場合はタイトルが「無題1」に
戻るようにしました。

今悩んでいるのは、リアルタイムプレビュー画面についてなのですが、
プレビュー自体は
    FormX(FormCnt2).RichTB.SaveFile App.Path & "\" & "itiji.htm", rtfText
    FormX(FormCnt2).WBrowser.Navigate App.Path & "\" & "itiji.htm"
と、別のファイルに一時保存して読み込ませることはできました。

問題は、テキストボックスのvisibleをfalseにし、
同じフォームにWBrowserのvisibleをtrueにして表示させたいのですが、
どうやって「その子フォームに」と命令すればいいのかが分からないところです。
用はアクティブなMDI子ウインドウのハンドルの取得や使い方が分かっていないのだと思うのですが…。
掲示板に書き込むのは初めてなので、分かりにくいかもしれませんが、
どうかご教授をお願いします。
足りない情報等ありましたらご指摘ください。


魔界の仮面弁士  2004-11-28 12:58:31  No: 117849

> 質問:初めまして。初心者ながらもHTMLエディタの作成に挑戦しています。

サンプルとしては、こんなのもあります。
HTMLソースを直接書くタイプではなく、WYSIWYGなエディタですけどね。

[DHTML]-[HTMLEditor]あたり。
http://msdn.microsoft.com/archive/en-us/samples/internet/welcome.asp

> 用はアクティブなMDI子ウインドウのハンドルの取得や使い方が
ActiveFormあたりが使えたような気がします。
手元にVBが無い & MDIアプリは長らく作ってないので、うろ覚えですけど。


白いパン  2004-11-29 03:14:41  No: 117850

>魔界の仮面弁士さん
レスありがとうございます。参考になりました。
ActiveFormプロパティを使ってみたんですが、

標準モジュールで
Public FormCnt2 As Form
と定義し、GotFocus命令で
Set FormCnt2 = Screen.ActiveForm
とし、プレビュー表示ボタンをクリックしたときに
FormCnt2.RichTB.SaveFile App.Path & "\" & "itiji.htm", rtfText
FormCnt2.WBrowser.Navigate App.Path & "\" & "itiji.htm"
FormCnt2.WBrowser.Visible = True
とすることにより、どのフォームでもプレビュー表示をすることができました。

ただ、よく分からないエラーに陥ってしまって・・・
例えば、新規作成によりフォームを2つ以上作り、
「無題1」をプレビュー画面に→「無題2」をプレビュー画面に→
「無題1」をエディタ画面に  とすると、
なぜか無題2の方がエディタ画面に戻ってしまいました。
「無題1」をプレビュー画面に→「無題2」をプレビュー画面に→
「無題2」をエディタ画面に→「無題1」をエディタ画面に
と、単体ごとにやると大丈夫なんですが、
GotFocusで指定してるからこんなエラーは起きないと思ったんですが・・・
どなたかご教授お願いしますです。


白いパン  2004-11-29 03:36:20  No: 117851

色々試行錯誤してみたところ
一応出来たみたいなので解決ということに。

十分にエラーがないか調べていないので、
もしかしたらまた書き込ませていただくかもしれません。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加