2013-06-28 53 views
0

我正在創建一個程序,該程序會創建一個沒有標題欄的WM_CLOSE消息過程設置爲0的窗口。到目前爲止,我得到了這個:用互聯網瀏覽器的客戶區域填充窗口的客戶區

LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg,WPARAM wParam, LPARAM lParam) 
{ 
    PAINTSTRUCT Paint; 
    HDC hdc; 
    switch (uMsg) 
    { 
     case WM_DESTOY: 
      PostQuitMessage (0); 
      return 0; 
     case WM_CLOSE: 
      return 0; 
     case WM_PAINT: 
      hdc=BeginPaint(hWindow,&Paint); 
       //here should go the code for painting 
      EndPaint(hWindow, &Paint); 
      return 0L; 
    } 
    return DefWindowProc(hWindow, uMsg, wParam, lParam); 
} 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) 
{ 
    GetDesktopSize(h,w); 
    WNDCLASSEX KlasaOkna; 
    ZeroMemory (&KlasaOkna, sizeof(WNDCLASSEX)); 
    KlasaOkna.cbSize = sizeof(WNDCLASSEX); 
    KlasaOkna.hInstance = hInstance; 
    KlasaOkna.lpfnWndProc = WindowEventProc; 
    KlasaOkna.lpszClassName = Name.c_str(); 
    KlasaOkna.hCursor = LoadCursor(NULL, IDC_ARROW); 
    KlasaOkna.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
    KlasaOkna.hbrBackground = (HBRUSH) COLOR_WINDOW; 
    RegisterClassEx (&KlasaOkna); 

    HWND hwn; 
    hwn = CreateWindowEx(NULL,Name.c_str(),"",WS_MYSET,0,0,w,h,NULL,NULL,hInstance,NULL); 

    SetWindowPos(hwn,HWND_TOPMOST,0,0,w,h,NULL); 
    SetWindowLong(hwn, GWL_STYLE, 0); 

    ShowWindow (hwn, SW_SHOWMAXIMIZED); 
    MSG msg; 
    while (GetMessage(&msg, NULL, 0, 0)) 
    { 
     TranslateMessage (&msg); 
     DispatchMessage (&msg); 
    } 
} 

按預期工作,但現在是最難的事情 - 我想窗口在其客戶區域打開一個網站。我認爲維護網站功能的最好方法是通過瀏覽器打開它。確實有辦法將互聯網瀏覽器繪製到我的窗口中,但我想不出任何東西,我也無法在MSDN中找到它。有誰知道該怎麼做?

回答

0

當然可能,但並非微不足道。嵌入WebKit。

Microsoft解決方案將嵌入Trident作爲ActiveX組件。

相關問題