ウェブブラウザを自作しよう4

(1) VBのAxWebBrowserクラスのOfflineプロパティは機能しませんなぁ。Offline=TrueでIEの「オフライン作業」状態になるはずなんだけど、実行してみると、ならない。ウェブ上でも同じ証言が複数得られたので、きっとそういうバグなんでしょう。どうせいまどきオフライン作業なんて使わないので、諦めます。


Private Sub MenuOffline_Click( 以下略
myBrowser.Offline = Not (myBrowser.Offline)
MenuOffline.Checked = Not (MenuOffline.Checked)
End Sub
ということがやりたかっただけ。

(2) IEみたいにステータスバー内にプログレスバーを入れるにはどうしたらいいんだろう? VBのフォームデザイナではステータスバーのコレクションにプログレスバーを持ってくることはできないっぽい。コードを手で書かないといけないのかな?


Private Sub StatusBar1_DrawItem(ByVal sender As Object, _
ByVal e As StatusBarDrawItemEventArgs) Handles StatusBar1.DrawItem
Dim rect As Rectangle
Dim sb As StatusBar = sender

If e.Panel Is Me.StatusProgress Then
rect = e.Bounds
Me.ProgressBar1.SetBounds(sb.Location.X + rect.X, _
sb.Location.Y + rect.Y, rect.Width, rect.Height)
End If
End Sub

ただし当該StatusBarPanel(上のソースではStatusProgress) の Styleプロパティを OwnerDraw にしておかないと DrawItemイベントが発生しません。(このことに気づかずてこずりましたよ。マニュアルよく読むとかいてあったんだけど。)


(3) WebBrouserの読み込み進捗をプログレスバーに表示するのは意外に簡単。WebBrouserのProgressChangeイベントが、progressMaxとprogressを渡してくれるので、これをプログレスバーのMaximumプロパティとValueプロパティに代入するだけ。


というわけで、
しらべもんブラウザ3号 http://licheng.sakura.ne.jp/temp/shirabemon3.lzh
・メニューで保存や印刷などができるようになりました。
・ふつうにURLからもブラウズできます。
・進む、戻るなどのボタンをツールバーにしました。
・ステータスバーとプログレスバーをつくりました。