让窗口“最大化”显示

让窗口“最大化”显示

闲话不说了,这是一种可能有问题的做法:

     int  cap  =  GetSystemMetrics(SM_CYCAPTION);
    
int  wid  =  GetSystemMetrics(SM_CXSCREEN);
    
int  hei  =  GetSystemMetrics(SM_CYSCREEN);

    hWnd 
=  CreateWindow(szWindowClass, szTitle, WS_NONAVDONEBUTTON | WS_VISIBLE | WS_POPUP,
        
0 , cap, wid, hei - cap, NULL, NULL, hInstance, NULL);
这才是比较地道的做法:
    RECT rectWorkArea;
    SystemParametersInfo(SPI_GETWORKAREA, 
0 , (PVOID) & rectWorkArea,  0 );

    hWnd 
=  CreateWindow(szWindowClass, TEXT( "" ), WS_NONAVDONEBUTTON | WS_VISIBLE | WS_POPUP,
        rectWorkArea.left, rectWorkArea.top, rectWorkArea.right
- rectWorkArea.left,
        rectWorkArea.bottom
- rectWorkArea.top, NULL, NULL, hInstance, NULL);
两种创建出来的窗口的高度可能相差几个像素,前一种方法可能导致窗口在创建完之后,有一次莫名其妙的WM_SIZE消息产生,有些东西啊,懂就是懂,不懂就是不懂……想也想不出来。

你可能感兴趣的:(让窗口“最大化”显示)