From 92aaa11ddac5287faabeafc3bdd58dc70222e4e7 Mon Sep 17 00:00:00 2001 From: Myun2 Date: Sun, 20 Mar 2011 18:27:29 +0900 Subject: [PATCH] =?utf8?q?window.hpp,=20control.hpp:=20101022=5Fwindow\2?= =?utf8?q?=5FEX=E3=81=B8=E3=81=AE=E5=AF=BE=E5=BF=9C=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- roast_ex/include/roast/windows/control.hpp | 29 +++++++++++++++-------------- roast_ex/include/roast/windows/window.hpp | 14 +++++++++++--- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/roast_ex/include/roast/windows/control.hpp b/roast_ex/include/roast/windows/control.hpp index e168383..bbe4b87 100644 --- a/roast_ex/include/roast/windows/control.hpp +++ b/roast_ex/include/roast/windows/control.hpp @@ -148,15 +148,16 @@ namespace roast int x, // ƒEƒBƒ“ƒhƒE‚̉¡•ûŒü‚̈ʒu int y, // ƒEƒBƒ“ƒhƒE‚̏c•ûŒü‚̈ʒu int nWidth, // ƒEƒBƒ“ƒhƒE‚Ì• - int nHeight, // ƒEƒBƒ“ƒhƒE‚̍‚‚³ - lpctstr_t lpControlText, // ƒEƒBƒ“ƒhƒE–¼ - DWORD dwStyle=0, // ƒEƒBƒ“ƒhƒEƒXƒ^ƒCƒ‹ + int nHeight, // Control Height + lpctstr_t lpControlText,// Control Text / Window Title + DWORD dwStyle=0, // Window Styles. (WS_* bit flags) + DWORD dwExStyle=0, // Window Ex Styles. (WS_EX_* bit flags) HMENU hMenu=NULL, // ƒƒjƒ…[ƒnƒ“ƒhƒ‹‚Ü‚½‚ÍŽqƒEƒBƒ“ƒhƒE ID LPVOID lpParam=NULL // ƒEƒBƒ“ƒhƒEì¬ƒf[ƒ^ ) { m_hAppInstance = hInstance; - m_hWnd = ::CreateWindow(m_szClassName,lpControlText,dwStyle,x,y,nWidth,nHeight, + m_hWnd = ::CreateWindowEx(dwExStyle, m_szClassName,lpControlText,dwStyle,x,y,nWidth,nHeight, hWndParent,hMenu,hInstance,lpParam); if ( m_hWnd == NULL ) @@ -228,7 +229,7 @@ namespace roast virtual bool on_create(::LPCREATESTRUCT lpCreateStruct){ return true; } // If returns false, the window is destroyed and the control::start() returns false. virtual void on_destroy(){ ::PostQuitMessage( 0 ); } virtual void on_move(unsigned short x, unsigned short y){} - virtual void on_sizing(unsigned int hold_bitflg){} + virtual void on_sizing(unsigned int hold_bitflg, const LPRECT lpControlRect){} private: LRESULT callback_main(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) @@ -257,32 +258,32 @@ namespace roast switch(wParam) { case WMSZ_LEFT: - on_sizing(sizing_hold_bit_left); + on_sizing(sizing_hold_bit_left, (const LPRECT)lParam); break; case WMSZ_RIGHT: - on_sizing(sizing_hold_bit_right); + on_sizing(sizing_hold_bit_right, (const LPRECT)lParam); break; case WMSZ_TOP: - on_sizing(sizing_hold_bit_top); + on_sizing(sizing_hold_bit_top, (const LPRECT)lParam); break; case WMSZ_BOTTOM: - on_sizing(sizing_hold_bit_bottom); + on_sizing(sizing_hold_bit_bottom, (const LPRECT)lParam); break; case WMSZ_TOPLEFT: - on_sizing(sizing_hold_bit_top | sizing_hold_bit_left); + on_sizing(sizing_hold_bit_top | sizing_hold_bit_left, (const LPRECT)lParam); break; case WMSZ_TOPRIGHT: - on_sizing(sizing_hold_bit_top | sizing_hold_bit_right); + on_sizing(sizing_hold_bit_top | sizing_hold_bit_right, (const LPRECT)lParam); break; case WMSZ_BOTTOMLEFT: - on_sizing(sizing_hold_bit_bottom | sizing_hold_bit_left); + on_sizing(sizing_hold_bit_bottom | sizing_hold_bit_left, (const LPRECT)lParam); break; case WMSZ_BOTTOMRIGHT: - on_sizing(sizing_hold_bit_bottom | sizing_hold_bit_right); + on_sizing(sizing_hold_bit_bottom | sizing_hold_bit_right, (const LPRECT)lParam); break; } - return 0; + return TRUE; } return ::DefWindowProc( hWnd, msg, wParam, lParam ); diff --git a/roast_ex/include/roast/windows/window.hpp b/roast_ex/include/roast/windows/window.hpp index 8bda815..795bd48 100644 --- a/roast_ex/include/roast/windows/window.hpp +++ b/roast_ex/include/roast/windows/window.hpp @@ -61,12 +61,19 @@ namespace roast ROAST_BIT_NOT(dwWindowStyle, WS_SIZEBOX); disable_maximize(); } - void enable_drop_files(){} + void enable_drop_files(){ dwWindowExStyle |= WS_EX_ACCEPTFILES; } void enable_maximize(){ dwWindowStyle |= WS_MAXIMIZEBOX; } void disable_maximize(){ ROAST_BIT_NOT(dwWindowStyle, WS_MAXIMIZEBOX); } void disable_minimize(){ ROAST_BIT_NOT(dwWindowStyle, WS_MINIMIZEBOX); } void disable(){ dwWindowStyle |= WS_DISABLED; } void enable(){ ROAST_BIT_NOT(dwWindowStyle, WS_DISABLED); } + + void enable_always_top(){ dwWindowExStyle |= WS_EX_TOPMOST; } + void disable_always_top(){ ROAST_BIT_NOT(dwWindowExStyle, WS_EX_TOPMOST); } + void tool_window(){ dwWindowExStyle |= WS_EX_TOOLWINDOW; } // No Icon, Small Title Bar, Button is Close Only. + void dent_window(){ dwWindowExStyle |= WS_EX_CLIENTEDGE; } + void title_right_align(){ dwWindowExStyle |= WS_EX_RIGHT; } + }; ///// @@ -85,7 +92,7 @@ namespace roast bool start( HINSTANCE hInstance, // ƒAƒvƒŠƒP[ƒVƒ‡ƒ“ƒCƒ“ƒXƒ^ƒ“ƒX‚̃nƒ“ƒhƒ‹ HWND hWndParent, // eƒEƒBƒ“ƒhƒE‚Ü‚½‚̓I[ƒi[ƒEƒBƒ“ƒhƒE‚̃nƒ“ƒhƒ‹ - lpctstr_t lpControlText, // ƒEƒBƒ“ƒhƒE–¼ + lpctstr_t szWindowTitle, // ƒEƒBƒ“ƒhƒE–¼ int x=CW_USEDEFAULT, // ƒEƒBƒ“ƒhƒE‚̉¡•ûŒü‚̈ʒu int y=CW_USEDEFAULT, // ƒEƒBƒ“ƒhƒE‚̏c•ûŒü‚̈ʒu int nWidth=CW_USEDEFAULT, // ƒEƒBƒ“ƒhƒE‚Ì• @@ -104,7 +111,8 @@ namespace roast throw windows_control_exception("Window Class Regist Failed."); //return false; - bool ret = custom_control::start(hInstance,hWndParent,x,y,nWidth,nHeight,lpControlText,detail.dwWindowStyle,detail.hMenu); + bool ret = custom_control::start(hInstance,hWndParent,x,y,nWidth,nHeight,szWindowTitle, + detail.dwWindowStyle, detail.dwWindowExStyle, detail.hMenu); if ( !ret ) return false; -- 2.11.0