?? wordactivex2.java
字號:
package cn.com.chengang.swt.activex;
import java.io.File;
import java.net.URISyntaxException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.ole.win32.Variant;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
public class WordActiveX2 {
public static void main(String[] args) throws URISyntaxException {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(500, 450);
// ---------創(chuàng)建窗口中的其他界面組件-------------
shell.setLayout(new FillLayout());
OleFrame oleFrame = new OleFrame(shell, SWT.NONE);
// --------------------- 創(chuàng)建菜單----------------------------------
Menu bar = new Menu(shell, SWT.BAR);
shell.setMenuBar(bar);
// 創(chuàng)建菜單項
MenuItem menu1 = new MenuItem(bar, SWT.CASCADE);
menu1.setText("menu1");
MenuItem menu2 = new MenuItem(bar, SWT.CASCADE);
menu2.setText("menu2");
MenuItem menu3 = new MenuItem(bar, SWT.CASCADE);
menu3.setText("menu3");
// 將菜單項嵌入OLE容器
oleFrame.setFileMenus(new MenuItem[] { menu1 });
oleFrame.setContainerMenus(new MenuItem[] { menu2 });
oleFrame.setWindowMenus(new MenuItem[] { menu3 });
// --------------------- 創(chuàng)建菜單結束----------------------------------
File file = new File(WordActiveX1.class.getResource("a.doc").toURI());
final OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NONE, file);
clientSite.doVerb(OLE.OLEIVERB_SHOW);
System.out.println(clientSite.getProgramID());
// 將打開的文件保存為另一個文件。因為用要到clientSite對象,所以把這段語句放在后面
menu1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
File file = new File("c:\\b.doc");
boolean success = clientSite.save(file, true);
System.out.println(success ? "成功" : "失敗");
}
});
// 調用Word控件的全選方法
menu2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
OleAutomation automation = new OleAutomation(clientSite);
// 取得全選方法Select對應的id
int[] methodIDs = automation.getIDsOfNames(new String[] { "Select" });
int methodID = methodIDs[0];
System.out.println("methodID = " + methodID);
Variant result = automation.invoke(methodID);
System.out.println(result != null ? "調用成功" : "調用失敗");
System.out.println(result);
automation.dispose();
}
});
// -----------------END------------------------
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -