Fenster im Vollbildmodus starten
-
HI,
Ich will mein Fenster in Vollbild haben. Das klappt auch am Anfang, wechselt
aber wieder in den Fenstermodus und ich find den Fehler nicht.#define WIN32_LEAN_AND_MEAN #define WINDOW_CLASS_NAME L"Test05" #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code)&0x8000?1:0)) #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code)&0x8000?0:1)) #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <shellapi.h> LOGFONT lf; HWND main_window_handle = NULL; HWND hWndEingabe =NULL; HINSTANCE hinstance_app = NULL; LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); void WriteString(HWND hwnd,TCHAR*str,int x, int y,COLORREF Bk,COLORREF cText); void SetDisplayMode(long lWidth, long lHeight, long lBPP) { DEVMODE dmScreenSettings; memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); dmScreenSettings.dmSize=sizeof(dmScreenSettings); dmScreenSettings.dmPelsWidth = lWidth; dmScreenSettings.dmPelsHeight = lHeight; dmScreenSettings.dmBitsPerPel = lBPP; dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFLAGS; if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN | CDS_RESET)!=DISP_CHANGE_SUCCESSFUL) { MessageBox(NULL,L"The requested mode is not supported!",L"Error",MB_OK); } } int WINAPI WinMain (HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int cmndshow) { srand( (unsigned)time( NULL ) ); WNDCLASS winclass; HWND hwnd; MSG msg; winclass.style = CS_HREDRAW | CS_VREDRAW; winclass.cbClsExtra = 0; winclass.cbWndExtra = 0; winclass.lpfnWndProc = WindowProc; winclass.hInstance = hinstance; winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); winclass.hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT)); winclass.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = WINDOW_CLASS_NAME; RegisterClass(&winclass); hinstance_app = hinstance; hwnd = CreateWindowEx(NULL,WINDOW_CLASS_NAME, L"Window", WS_VISIBLE |WS_POPUPWINDOW, 100,100,600,600, NULL, NULL, hinstance, NULL); main_window_handle=hwnd; SetDisplayMode(1024,768,32); while (true) { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } } return (msg.wParam); } LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { PAINTSTRUCT ps; HDC hdc; switch (msg) { case WM_CREATE: { return(0); } break; case WM_CHAR: { return(0); } break; case WM_PAINT: { hdc = BeginPaint(hwnd,&ps); EndPaint(hwnd,&ps); return(0); } break; case WM_DESTROY: { PostQuitMessage(0); return(0); } break; case WM_LBUTTONDOWN: { return 0; } case WM_RBUTTONDOWN: { SetDisplayMode(1024,768,32); return 0; } default: break; } return(DefWindowProc(hwnd,msg,wparam,lparam)); } void WriteString(HWND hwnd,TCHAR*str,int x, int y,COLORREF Bk,COLORREF cText) { HFONT fnt; HDC dc; RECT r; dc = GetDC(hwnd); GetClientRect(hwnd,&r); r.top=y; r.left=x; SetRect(&r,x,y,x+61,y+15); SetBkColor(dc,Bk); SetTextColor(dc,cText); lf.lfHeight=15; swprintf(lf.lfFaceName,L"Arial Unicode MS"); FillRect(dc,&r,(HBRUSH)GetStockObject(WHITE_BRUSH)); fnt = CreateFontIndirect(&lf); SelectObject(dc, fnt); DrawText(dc,str,-1,&r,0); ReleaseDC(hwnd, dc); DeleteObject(fnt); }
-
habs inzwischen selbst geschafft:
#define WIN32_LEAN_AND_MEAN #define WINDOW_CLASS_NAME L"Test05" #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code)&0x8000?1:0)) #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code)&0x8000?0:1)) #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <shellapi.h> LOGFONT lf; HWND main_window_handle = NULL; HWND hWndEingabe =NULL; HINSTANCE hinstance_app = NULL; LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); void WriteString(HWND hwnd,TCHAR*str,int x, int y,COLORREF Bk,COLORREF cText); void SetDisplayMode(long lWidth, long lHeight, long lBPP) { RECT windowRect; windowRect.top = 0; windowRect.left = 0; windowRect.bottom = 768; windowRect.right = 1024; DEVMODE dmScreenSettings; memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); dmScreenSettings.dmSize=sizeof(dmScreenSettings); dmScreenSettings.dmPelsWidth = lWidth; dmScreenSettings.dmPelsHeight = lHeight; dmScreenSettings.dmBitsPerPel = lBPP; dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT; if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN | CDS_RESET)!=DISP_CHANGE_SUCCESSFUL) { MessageBox(NULL,L"The requested mode is not supported!",L"Error",MB_OK); } AdjustWindowRectEx(&windowRect, WS_POPUP, FALSE, WS_EX_APPWINDOW); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { WNDCLASSEX wc; HWND hwnd; MSG msg; DWORD dwExStyle, dwStyle; int width=1024,height=768,bits=32; bool done=FALSE; RECT windowRect; windowRect.top = 0; windowRect.left = 0; windowRect.bottom = height; windowRect.right = width; wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WindowProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = L"OpenGL"; wc.hIconSm = LoadIcon(NULL,IDI_WINLOGO); RegisterClassEx(&wc); DEVMODE devModeScreen; memset(&devModeScreen, 0,sizeof(devModeScreen)); devModeScreen.dmSize = sizeof(devModeScreen); devModeScreen.dmPelsWidth = width; devModeScreen.dmPelsHeight = height; devModeScreen.dmBitsPerPel = bits; devModeScreen.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL; ChangeDisplaySettings(&devModeScreen, CDS_FULLSCREEN); dwExStyle = WS_EX_APPWINDOW; dwStyle = WS_POPUP; ShowCursor(FALSE); AdjustWindowRectEx(&windowRect, dwStyle, FALSE, dwExStyle); hwnd=CreateWindowEx(dwExStyle, L"OpenGL", L"glwindow", dwStyle | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0,0, windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, SW_SHOW); UpdateWindow(hwnd); while(!done) { PeekMessage(&msg,NULL,0,0,PM_REMOVE); if (msg.message==WM_QUIT) { done=TRUE; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } return (msg.wParam); } LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { PAINTSTRUCT ps; HDC hdc; switch (msg) { case WM_CREATE: { return(0); } break; case WM_CHAR: { return(0); } break; case WM_PAINT: { hdc = BeginPaint(hwnd,&ps); EndPaint(hwnd,&ps); return(0); } break; case WM_DESTROY: { PostQuitMessage(0); return(0); } break; case WM_LBUTTONDOWN: { return 0; } case WM_RBUTTONDOWN: { return 0; } default: break; } return(DefWindowProc(hwnd,msg,wparam,lparam)); } void WriteString(HWND hwnd,TCHAR*str,int x, int y,COLORREF Bk,COLORREF cText) { HFONT fnt; HDC dc; RECT r; dc = GetDC(hwnd); GetClientRect(hwnd,&r); r.top=y; r.left=x; SetRect(&r,x,y,x+61,y+15); SetBkColor(dc,Bk); SetTextColor(dc,cText); lf.lfHeight=15; swprintf(lf.lfFaceName,L"Arial Unicode MS"); FillRect(dc,&r,(HBRUSH)GetStockObject(WHITE_BRUSH)); fnt = CreateFontIndirect(&lf); SelectObject(dc, fnt); DrawText(dc,str,-1,&r,0); ReleaseDC(hwnd, dc); DeleteObject(fnt); }