Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MFC PreCreateWindow可创建除任务栏外填充屏幕的窗口_C++_Mfc - Fatal编程技术网

C++ MFC PreCreateWindow可创建除任务栏外填充屏幕的窗口

C++ MFC PreCreateWindow可创建除任务栏外填充屏幕的窗口,c++,mfc,C++,Mfc,我想创建一个窗口,填充整个桌面空间,不包括Windows开始菜单,也不最大化窗口 我认为代码应该是这样的: BOOL CWnd::PreCreateWindow(CREATESTRUCT& cs) { cs.cx = ::GetSystemMetrics(SM_CXSCREEN); cs.cy = ::GetSystemMetrics(SM_CYSCREEN); // minus start menu height please return CMDIFram

我想创建一个窗口,填充整个桌面空间,不包括Windows开始菜单,也不最大化窗口

我认为代码应该是这样的:

BOOL CWnd::PreCreateWindow(CREATESTRUCT& cs)
{
    cs.cx = ::GetSystemMetrics(SM_CXSCREEN); 
    cs.cy = ::GetSystemMetrics(SM_CYSCREEN); // minus start menu height please

    return CMDIFrameWnd::PreCreateWindow(cs);
}

但是我如何获得开始菜单的高度呢?谢谢。

为了避免任务栏和任何应用程序栏,您需要填充工作区。使用
GetMonitorInfo
功能,查看
rcWork
成员。(请注意,每个显示器都有不同的工作区域,因此您需要知道您关心的是哪个显示器。)

您指的是“开始”菜单还是任务栏?是否还要避免停靠应用程序栏?是。如果可能的话,appbars也是这样。在调用基类的实现之后,您不需要修改结构吗?