OpenFile:
Dim ChildForm As New WordsChildForm1
ChildForm.MdiParent = Me
ChildForm.Text = FileName
ChildForm.Show()
Dim memo As WPDynamic.IWPMemo
memo = ChildForm.WpdllInt1.Memo
If (memo Is Nothing) Or _
Not memo.LoadFromFile(FileName, False, "AUTO") Then
MessageBox.Show("Cannot load " + FileName)
ChildForm.Dispose()
End If
SaveAs:
If Not WpdllInt1 Is Nothing Then
Dim memo As WPDynamic.IWPMemo
memo = ChildForm.WpdllInt1.Memo
If Not memo.SaveToFile(FileName, False, "AUTO") Then
MessageBox.Show("Cannot write " + FileName)
End If
End If
Cut:
If Not WpdllInt1 Is Nothing Then
Dim memo As WPDynamic.IWPMemo
memo = WpdllInt1.Memo
memo.CutToClipboard()
End If
Copy: memo.CopyToClipboard()
Paste: memo.PasteFromClipboard()
Undo: memo.TextCursor.Undo()
Redo: memo.TextCursor.Redo()
SelectAll: memo.TextCursor.SelectAll()
PrintPreview: memo.ShowDialog(WPDynamic.DialogID.Preview, "", "")
Print: memo.ShowDialog(WPDynamic.DialogID.Preview, "", "")
Still missing is some code to update the enabled state of the standard buttons and menu items. Since the UpdateGUI event gets a bitfield parameter with the required states we only need a unitilty methiod which processes this bits. We use a public sub procedure in the MDI parent and call it from the UpdateGUI event on the child form.
In the MDI Parent:
Public Sub UpdateStandardActionState(ByVal StateFlags As Integer)
' Modified Flag
SaveToolStripButton.Enabled = ((StateFlags And 1) <> 0)
SaveAsToolStripMenuItem.Enabled = ((StateFlags And 1) <> 0)
' Inserting mode (update item 3 in status bar)
If ((StateFlags And 2) <> 0) Then
StatusStrip.Items(2).Text = "INS"
Else
StatusStrip.Items(2).Text = ""
End If
' UNDO State
UndoToolStripMenuItem.Enabled = ((StateFlags And 4) <> 0)
' REDO State
RedoToolStripMenuItem.Enabled = ((StateFlags And 8) <> 0)
' Copy, Cut - if Text is selected
CopyToolStripMenuItem.Enabled = ((StateFlags And 16) <> 0)
CutToolStripMenuItem.Enabled = ((StateFlags And 16) <> 0)
End Sub
In the MDI Child:
Private Sub WpdllInt1_OnUpdateGUI(....) Handles WpdllInt1.OnUpdateGUI
WordsMDIParent1.ReadCurrentAttributes(WpdllInt1)
WordsMDIParent1.UpdateStandardActionState(StateFlags)
WordsMDIParent1.StatusStrip.Items(0).Text = Convert.ToString(PageNr) _
+ "/" + Convert.ToString(PageCount)
WordsMDIParent1.StatusStrip.Items(1).Text = Convert.ToString(LineNr)
End Sub