-#include "mof/Window.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <stdexcept>\r
-\r
-LRESULT WINAPI wndProc( HWND hWnd , UINT msg, WPARAM wParam, LPARAM lParam)\r
-{\r
- switch(msg)\r
- {\r
- case WM_ACTIVATEAPP:\r
- if(LOWORD(wParam) == 0)\r
- {\r
- /* *ConsoleOut::getInstance() << "Window\82ª\94ñ\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
- mof::System::getInstance()->activate(false);\r
- mof::InputDevice::getInstance()->activate(false);*/\r
- mof::InputDevice::setActivation(false);\r
- }\r
- else \r
- {\r
- /* *ConsoleOut::getInstance() << "Window\82ª\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
- mof::System::getInstance()->activate(true);\r
- mof::InputDevice::getInstance()->activate(true);*/\r
- mof::InputDevice::setActivation(true);\r
- }\r
- break;\r
- case WM_DESTROY:\r
- PostQuitMessage(0);\r
- break;\r
- case WM_SETCURSOR:\r
- SetCursor(NULL);\r
- break;\r
- }\r
- \r
- return DefWindowProc( hWnd, msg, wParam, lParam );\r
-}\r
-\r
-\r
-\r
-\r
-namespace mof\r
-{\r
- \r
- struct Window::Impl\r
- {\r
- mof::tstring appName;\r
- HINSTANCE hInstance;\r
- HWND hWindow;\r
- \r
- Impl(const mof::tstring& appname , HINSTANCE hInstance );\r
- };\r
-\r
- Window::Impl::Impl(const mof::tstring &appname, HINSTANCE hInstance )\r
- : appName( appname ) , hInstance( hInstance ) , hWindow( NULL )\r
- {\r
- // do nothing\r
- } \r
-\r
- Window::Window( const mof::tstring &appname , int width , int height , bool fullscreen )\r
- : m_pImpl( new mof::Window::Impl( appname , GetModuleHandle(NULL) ) )\r
- {\r
-\r
- // \83E\83B\83\93\83h\83E\83N\83\89\83X\90Ý\92è\r
- WNDCLASSEX wc = \r
- { \r
- sizeof(WNDCLASSEX), CS_CLASSDC, wndProc, 0L, 0L, \r
- m_pImpl->hInstance , NULL, NULL, NULL, NULL,\r
- m_pImpl->appName.c_str() , NULL\r
- };\r
- RegisterClassEx( &wc );\r
-\r
- // \83E\83B\83\93\83h\83E\90¶\90¬\r
- if( !fullscreen )\r
- {\r
- // \8ew\92è\82³\82ê\82½\83N\83\89\83C\83A\83\93\83g\97Ì\88æ\82ð\8am\95Û\82·\82é\82½\82ß\82É\95K\97v\82È\83E\83B\83\93\83h\83E\83T\83C\83Y\82ð\93¾\82é\r
- RECT rect_win;\r
- SetRect( &rect_win , 0 , 0 , width , height );\r
- AdjustWindowRect( &rect_win , WS_OVERLAPPEDWINDOW , false );\r
- \r
- //Window\83\82\81[\83h\r
- m_pImpl->hWindow = \r
- CreateWindow\r
- ( \r
- m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
- WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, (rect_win.right - rect_win.left) ,\r
- (rect_win.bottom - rect_win.top) , GetDesktopWindow() , NULL , wc.hInstance , NULL\r
- );\r
- }\r
- else\r
- {\r
- //\83t\83\8b\83X\83N\83\8a\81[\83\93\r
- m_pImpl->hWindow = \r
- CreateWindow\r
- (\r
- m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
- WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , width , height ,\r
- HWND_DESKTOP , NULL , wc.hInstance , NULL\r
- );\r
- }\r
- \r
- \r
- // \83E\83B\83\93\83h\83E\95`\89æ\r
- ShowWindow( m_pImpl->hWindow , SW_SHOWDEFAULT );\r
- UpdateWindow( m_pImpl->hWindow );\r
-\r
-\r
- } // function constructor \r
-\r
-\r
-\r
- Window::~Window( )\r
- {\r
- try\r
- {\r
- \r
- //\97á\8aO\82È\82°\82é\81H\r
- UnregisterClass(m_pImpl->appName.c_str() , m_pImpl->hInstance );\r
- }\r
- catch(...)\r
- {\r
- }\r
- \r
- }\r
- \r
- HWND Window::getHandler() const {\r
- return m_pImpl->hWindow;\r
- }\r
-\r
+#include "mof/Window.hpp"
+#include "mof/InputDevice.hpp"
+#include "mof/ConsoleIO.hpp"
+#include <stdexcept>
+
+LRESULT WINAPI wndProc( HWND hWnd , UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch(msg)
+ {
+ case WM_ACTIVATEAPP:
+ if(LOWORD(wParam) == 0)
+ {
+ /* *ConsoleOut::getInstance() << "Window\82ª\94ñ\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;
+ mof::System::getInstance()->activate(false);
+ mof::InputDevice::getInstance()->activate(false);*/
+ mof::InputDevice::setActivation(false);
+ }
+ else
+ {
+ /* *ConsoleOut::getInstance() << "Window\82ª\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;
+ mof::System::getInstance()->activate(true);
+ mof::InputDevice::getInstance()->activate(true);*/
+ mof::InputDevice::setActivation(true);
+ }
+ break;
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ break;
+ case WM_SETCURSOR:
+ SetCursor(NULL);
+ break;
+ }
+
+ return DefWindowProc( hWnd, msg, wParam, lParam );
+}
+
+
+
+
+namespace mof
+{
+
+ struct Window::Impl
+ {
+ mof::tstring appName;
+ HINSTANCE hInstance;
+ HWND hWindow;
+
+ Impl(const mof::tstring& appname , HINSTANCE hInstance );
+ };
+
+ Window::Impl::Impl(const mof::tstring &appname, HINSTANCE hInstance )
+ : appName( appname ) , hInstance( hInstance ) , hWindow( NULL )
+ {
+ // do nothing
+ }
+
+ Window::Window( const mof::tstring &appname , int width , int height , bool fullscreen )
+ : m_pImpl( new mof::Window::Impl( appname , GetModuleHandle(NULL) ) )
+ {
+
+ // \83E\83B\83\93\83h\83E\83N\83\89\83X\90Ý\92è
+ WNDCLASSEX wc =
+ {
+ sizeof(WNDCLASSEX), CS_CLASSDC, wndProc, 0L, 0L,
+ m_pImpl->hInstance , NULL, NULL, NULL, NULL,
+ m_pImpl->appName.c_str() , NULL
+ };
+ RegisterClassEx( &wc );
+
+ // \83E\83B\83\93\83h\83E\90¶\90¬
+ if( !fullscreen )
+ {
+ // \8ew\92è\82³\82ê\82½\83N\83\89\83C\83A\83\93\83g\97Ì\88æ\82ð\8am\95Û\82·\82é\82½\82ß\82É\95K\97v\82È\83E\83B\83\93\83h\83E\83T\83C\83Y\82ð\93¾\82é
+ RECT rect_win;
+ SetRect( &rect_win , 0 , 0 , width , height );
+ AdjustWindowRect( &rect_win , WS_OVERLAPPEDWINDOW , false );
+
+ //Window\83\82\81[\83h
+ m_pImpl->hWindow =
+ CreateWindow
+ (
+ m_pImpl->appName.c_str() , m_pImpl->appName.c_str() ,
+ WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, (rect_win.right - rect_win.left) ,
+ (rect_win.bottom - rect_win.top) , GetDesktopWindow() , NULL , wc.hInstance , NULL
+ );
+ }
+ else
+ {
+ //\83t\83\8b\83X\83N\83\8a\81[\83\93
+ m_pImpl->hWindow =
+ CreateWindow
+ (
+ m_pImpl->appName.c_str() , m_pImpl->appName.c_str() ,
+ WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , width , height ,
+ HWND_DESKTOP , NULL , wc.hInstance , NULL
+ );
+ }
+
+
+ // \83E\83B\83\93\83h\83E\95`\89æ
+ ShowWindow( m_pImpl->hWindow , SW_SHOWDEFAULT );
+ UpdateWindow( m_pImpl->hWindow );
+
+
+ } // function constructor
+
+
+
+ Window::~Window( )
+ {
+ try
+ {
+
+ //\97á\8aO\82È\82°\82é\81H
+ UnregisterClass(m_pImpl->appName.c_str() , m_pImpl->hInstance );
+ }
+ catch(...)
+ {
+ }
+
+ }
+
+ HWND Window::getHandler() const {
+ return m_pImpl->hWindow;
+ }
+
} // namespace mof
\ No newline at end of file