@@ -110,6 +110,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
110110 AppendMenuW (hView , MF_STRING , IDM_VIEWSCHEMA , L"&Schema\tCtrl+3, F7" );
111111 AppendMenuW (hView , MF_SEPARATOR , 0 , NULL );
112112 AppendMenuW (hView , MF_STRING | MF_CHECKED , IDM_STATUSBAR , L"Status &Bar" );
113+ AppendMenuW (hView , MF_STRING , IDM_FULLSCREEN , L"&Full Screen\tAlt+Enter" );
113114 g_hViewMenu = hView ;
114115 AppendMenuW (hMenu , MF_POPUP , (UINT )hView , L"&View" );
115116
@@ -261,9 +262,9 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
261262
262263 SendMessage (g_hwndStatus , WM_SIZE , 0 , 0 );
263264 GetWindowRect (g_hwndStatus , & rcStatus );
264- sbHeight = g_showStatusBar ? (rcStatus .bottom - rcStatus .top ) : 0 ;
265+ sbHeight = ( g_showStatusBar && ! g_fullScreen ) ? (rcStatus .bottom - rcStatus .top ) : 0 ;
265266
266- cbHeight = CommandBar_Height (g_hwndCB );
267+ cbHeight = g_fullScreen ? 0 : CommandBar_Height (g_hwndCB );
267268 GetClientRect (hwnd , & rc );
268269 editHeight = rc .bottom - cbHeight - sbHeight ;
269270 queryLeft = g_showLineNumbers ? g_lineNumWidth : 0 ;
@@ -381,6 +382,13 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
381382 CheckMenuItem (g_hViewMenu , IDM_STATUSBAR , g_showStatusBar ? MF_CHECKED : MF_UNCHECKED );
382383 SendMessage (hwnd , WM_SIZE , 0 , 0 );
383384 break ;
385+ case IDM_FULLSCREEN :
386+ g_fullScreen = !g_fullScreen ;
387+ ShowWindow (g_hwndStatus , g_fullScreen ? SW_HIDE : (g_showStatusBar ? SW_SHOW : SW_HIDE ));
388+ ShowWindow (g_hwndCB , g_fullScreen ? SW_HIDE : SW_SHOW );
389+ CheckMenuItem (g_hViewMenu , IDM_FULLSCREEN , g_fullScreen ? MF_CHECKED : MF_UNCHECKED );
390+ SendMessage (hwnd , WM_SIZE , 0 , 0 );
391+ break ;
384392 case IDM_SCHEMA_SELECT :
385393 OnSchemaDoubleClick ();
386394 break ;
@@ -433,6 +441,10 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
433441 SendMessage (hwnd , WM_CLOSE , 0 , 0 );
434442 return 0 ;
435443 }
444+ if (wParam == VK_RETURN && GetKeyState (VK_MENU ) < 0 ) {
445+ SendMessage (hwnd , WM_COMMAND , IDM_FULLSCREEN , 0 );
446+ return 0 ;
447+ }
436448 break ;
437449
438450 case WM_KEYDOWN :
@@ -522,7 +534,11 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
522534 OnSchemaDoubleClick ();
523535 return TRUE;
524536 } else if (pKey -> wVKey == VK_ESCAPE ) {
525- SendMessage (hwnd , WM_COMMAND , IDM_VIEWQUERY , 0 );
537+ if (g_fullScreen ) {
538+ SendMessage (hwnd , WM_COMMAND , IDM_FULLSCREEN , 0 );
539+ } else {
540+ SendMessage (hwnd , WM_COMMAND , IDM_VIEWQUERY , 0 );
541+ }
526542 return TRUE;
527543 } else if (GetKeyState (VK_CONTROL ) < 0 ) {
528544 if (pKey -> wVKey == '1' ) SendMessage (hwnd , WM_COMMAND , IDM_VIEWQUERY , 0 );
0 commit comments