Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable Window Resizing Win32

Tags:

how do I disable resizing by dragging the edge of windows?

Here is my window creation code

bool CreateGLWindow(char* title, int width, int height) { GLuint      PixelFormat;            // Holds The Results After Searching For A Match WNDCLASS    wc;                     // Windows Class Structure DWORD       dwExStyle;              // Window Extended Style DWORD       dwStyle;                // Window Style RECT        WindowRect;             // Grabs Rectangle Upper Left / Lower Right Values WindowRect.left=(long)0;            // Set Left Value To 0 WindowRect.right=(long)width;       // Set Right Value To Requested Width WindowRect.top=(long)0;             // Set Top Value To 0 WindowRect.bottom=(long)height;     // Set Bottom Value To Requested Height  hInstance           = GetModuleHandle(NULL);                // Grab An Instance For Our Window wc.style            = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;   // Redraw On Size, And Own DC For Window. wc.lpfnWndProc      = (WNDPROC) WndProc;                    // WndProc Handles Messages wc.cbClsExtra       = 0;                                    // No Extra Window Data wc.cbWndExtra       = 0;                                    // No Extra Window Data wc.hInstance        = hInstance;                            // Set The Instance wc.hIcon            = LoadIcon(NULL, IDI_WINLOGO);          // Load The Default Icon wc.hCursor          = LoadCursor(NULL, IDC_ARROW);          // Load The Arrow Pointer wc.hbrBackground    = NULL;                                 // No Background Required For GL wc.lpszMenuName     = NULL;                                 // We Don't Want A Menu wc.lpszClassName    = "OpenGL";                             // Set The Class Name  if (!RegisterClass(&wc))                                    // Attempt To Register The Window Class {     MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                                           // Return FALSE }  dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;           // Window Extended Style dwStyle=WS_OVERLAPPEDWINDOW;                            // Windows Style  AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);     // Adjust Window To True Requested Size  // Create The Window if (!(hWnd=CreateWindowEx(  dwExStyle,                          // Extended Style For The Window                             "OpenGL",                           // Class Name                             title,                              // Window Title                             dwStyle |                           // Defined Window Style                             WS_CLIPSIBLINGS |                   // Required Window Style                             WS_CLIPCHILDREN,                    // Required Window Style                             0, 0,                               // Window Position                             WindowRect.right-WindowRect.left,   // Calculate Window Width                             WindowRect.bottom-WindowRect.top,   // Calculate Window Height                             NULL,                               // No Parent Window                             NULL,                               // No Menu                             hInstance,                          // Instance                             NULL)))                             // Dont Pass Anything To WM_CREATE {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  static  PIXELFORMATDESCRIPTOR pfd=              // pfd Tells Windows How We Want Things To Be {     sizeof(PIXELFORMATDESCRIPTOR),              // Size Of This Pixel Format Descriptor     1,                                          // Version Number     PFD_DRAW_TO_WINDOW |                        // Format Must Support Window     PFD_SUPPORT_OPENGL |                        // Format Must Support OpenGL     PFD_DOUBLEBUFFER,                           // Must Support Double Buffering     PFD_TYPE_RGBA,                              // Request An RGBA Format     24,                                     // Select Our Color Depth     0, 0, 0, 0, 0, 0,                           // Color Bits Ignored     0,                                          // No Alpha Buffer     0,                                          // Shift Bit Ignored     0,                                          // No Accumulation Buffer     0, 0, 0, 0,                                 // Accumulation Bits Ignored     24,                                         // 24Bit Z-Buffer (Depth Buffer)       0,                                          // No Stencil Buffer     0,                                          // No Auxiliary Buffer     PFD_MAIN_PLANE,                             // Main Drawing Layer     0,                                          // Reserved     0, 0, 0                                     // Layer Masks Ignored };  if (!(hDC=GetDC(hWnd)))                         // Did We Get A Device Context? {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd))) // Did Windows Find A Matching Pixel Format? {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  if(!SetPixelFormat(hDC,PixelFormat,&pfd))       // Are We Able To Set The Pixel Format? {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  if (!(hRC=wglCreateContext(hDC)))               // Are We Able To Get A Rendering Context? {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  if(!wglMakeCurrent(hDC,hRC))                    // Try To Activate The Rendering Context {     KillGLWindow();                             // Reset The Display     MessageBox(NULL,"Can't Activate The GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);     return false;                               // Return FALSE }  ShowWindow(hWnd,SW_SHOW);                       // Show The Window SetForegroundWindow(hWnd);                      // Slightly Higher Priority SetFocus(hWnd);                                 // Sets Keyboard Focus To The Window reshape(width, height);                 // Set Up Our Perspective GL Screen  init();  return true;                                    // Success } 
like image 759
Chris Avatar asked Jul 18 '10 14:07

Chris


People also ask

How do I change my window resize?

Right-click on the button that represents the window in Window List . Choose Resize from the Window Menu. Use the arrow keys to resize the window. Press-and-hold Alt, then middle-click near the corner that you want to resize.

How do I force a window to resize in Windows 11?

Press Alt + Spacebar again to open the window menu, arrow down to Size, and press Enter . Press the up or down arrow key if you want to resize the window vertically or the left or right arrow key if you want to resize horizontally.


2 Answers

The WS_OVERLAPPEDWINDOW style includes the WS_THICKFRAME style which, I think, is responsible for making your window resizeable.

Consider something like

dwStyle=(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX); 
like image 79
hermos Avatar answered Sep 20 '22 20:09

hermos


You can use WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME

The XOR will keep everything in WS_OVERLAPPEDWINDOW except for WS_THICKFRAME

like image 45
user3006930 Avatar answered Sep 19 '22 20:09

user3006930