私は、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);
}
}
これは意図したとおりに機能しますが、ここで最も難しい問題が発生します。ウィンドウのクライアント領域で Web サイトを開くようにしたいのです。サイトの機能を維持するための最善の方法は、ブラウザーからサイトを開くことだと思います。インターネット ブラウザをウィンドウに描画する方法は確かにありますが、思いつきませんし、MSDN でも見つかりませんでした。誰もそれを行う方法を知っていますか?