In C ++, the Windows API resizes a window at runtime?

How to resize global hwnd variable at runtime when a button is clicked?

Or just resize the window at runtime. i.e.

HWND hwnd; //global int buttonid = 250; // an id for a button //also global int WINAPI wWinMain(/*blah blah blah */) { //blah blah blah hwnd = CreateWindowEx( 0, L"WindowClass", L"Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 275, NULL, NULL, hInstance, NULL ); HWND mybutton = CreateWindow( L"BUTTON", L"Button", WS_VISIBLE | WS_CHILD | WS_TABSTOP, 14, 13, 250, 200, hwnd, (HMENU)buttonid, hInstance, NULL ); //blah blah blah } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lparam) { switch(uMsg) { case WM_COMMAND: if(buttonid==wParam) { //this is where i want the code for resizing hwnd so when you click the //button it resizes the window } } } 
+4
source share
2 answers

MoveWindow or SetWindowPos (although the latter is more useful if you want to do more than just resize it).

In both cases, you can specify not only the position of the upper left corner, but also the position of the lower right corner, so if you leave the upper left corner as it is and move the lower right corner to the right, you will resize the window without "moving".

+8
source
 SetWindowPos(yourhwnd,0,0,0,newWidth,newHeight,SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE); 

Or, if you want to move and resize, you can use the older MoveWindow function

+8
source

Source: https://habr.com/ru/post/1347407/


All Articles