2013-06-25 25 views
0

我目前正在開發一個C++應用程序,當它啓動時,在沒有標題欄的窗口中打開用戶的默認瀏覽器(特別是我想擺脫右上角的所有按鈕)。我用這段代碼檢查可執行文件路徑:啓動不帶標題欄的默認瀏覽器

HKEY Key; 
LPCTSTR Key2 = TEXT("http\\shell\\open\\command"); 
RegOpenKeyEx(HKEY_CLASSES_ROOT, Key2, 0L, KEY_ALL_ACCESS, &Key); 
char Path[256]; 
DWORD dwSize = 256; 
RegQueryValueEx(Key, NULL, NULL, NULL, (LPBYTE)Path, &dwSize); 
LPCSTR browser=Path; 

然後將它傳遞給CreateProcess()

我的問題是:我應該如何刪除這個窗口的標題欄,是不是更好使用ShellExecute並獲得與FindWindow()處理?

回答

0

如果要刪除標題欄,請使用FindWindow()獲取目標的句柄。
更改目標窗口中的樣式屬性並對其進行修改。

#include <windows.h> 
#include <stdio.h> 

int main(void) 
{ 
    HWND hWnd = NULL; 
    LONG lStyle; 

    hWnd = FindWindow(0, "Google - Windows Internet Explorer"); 
    lStyle = GetWindowLong(hWnd, GWL_STYLE); 
    lStyle &= ~WS_CAPTION; /*remove WS_CAPTION style */ 
    SetWindowLong(hWnd, GWL_STYLE, lStyle); 
    if(hWnd!=NULL)   
     SetWindowPos(hWnd, HWND_TOP, 0,0,0,0, SWP_FRAMECHANGED); /*Changes style in your window */ 

return 0; 
} 

這兩項功能將做的工作,但CreateProcess的是更可靠,更安全的功能不同的ShellExecute

+0

感謝的人,真的幫了大忙 – user2487868