2010-03-12 105 views
1

我有一個用C++ Builder試行單詞的代碼(它工作正常)。 在文檔中顯示不同的書籤很有用。在C++ Builder中使用Ole試點微軟Word:如何把Word放在前臺

Variant vNom, vWDocuments, vWDocument, vMSWord, vSignets, vSignet; 
    vNom = WideString("blabla.doc"); 
    try 
    { 
     vMSWord = Variant::GetActiveObject("Word.Application"); 
    } 
    catch(...) 
    { 
     vMSWord = Variant::CreateObject("Word.Application"); 
    } 
    vMSWord.OlePropertySet("Visible", true); 
    vWDocuments = vMSWord.OlePropertyGet("Documents"); 
    vWDocument = vWDocuments.OleFunction("Open", vNom); 
    vSignets = vWDocument.OlePropertyGet("BookMarks"); 
    if (vSignets.OleFunction("Exists", signet)) 
    { 
     vSignet = vSignets.OleFunction("Item", signet); 
     vSignet.OleFunction("Select"); 
    } 

但是,一旦文件被打開,用戶不再能看到當其他書籤已經達到,因爲應用程序停留在背景。

有誰知道我能做些什麼來使Word顯示在前臺,或點亮任務欄中的文檔?

回答

1

有一個簡單的技巧,以做到這一點(使用Win32 API):

ShowWindow(hwnd, SW_MINIMIZE); 
ShowWindow(hwnd, SW_RESTORE); 

必須使用EnumWindows功能找到字的HWND。

+0

是它的工作原理,非常感謝! – Getz 2010-03-12 10:59:18

0

我用的是 「FindWindow函數」 的方法:

HWND hwnd = FindWindowA(NULL,"blabla.doc - Microsoft Word"); 
    ShowWindow(hwnd, SW_MINIMIZE); 
    ShowWindow(hwnd, SW_RESTORE);