mfc关于用户区坐标与窗口坐标的问题

要加载一个背景,首先定义了一个客户区的坐标

m_sClient.SetSize(1200, 1000)
pDC->BitBlt(0, 0, m_sClient.cx, m_sClient.cy, &m_bufferDC, 0, 0, SRCCOPY);

然后定义了初始窗口的坐标,并且把它居中
`BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式

//更改窗口外观
CSize size;

//获取屏幕像素大小
size.cx = ::GetSystemMetrics(SM_CXFULLSCREEN);
size.cy = ::GetSystemMetrics(SM_CYFULLSCREEN);

//窗口风格
cs.style = WS_POPUPWINDOW;
//去掉菜单
cs.hMenu = NULL;
//窗口标题名称
cs.lpszName = _T("Button");

//自定义窗口大小, 并窗口居中显示
cs.x = (size.cx - 1200) / 2;
cs.y = (size.cy - 1000) / 2;
cs.cx = 1200;
cs.cy = 1000;

return TRUE;

}`

结果发现这样
图片说明
有一大块留白的地方

pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,0,0,x,y,SRCCOPY)

你的背景图是希望显示在哪里?

//自定义窗口大小, 并窗口居中显示
cs.x = (size.cx - 1200) / 2;
cs.y = (size.cy - 1000) / 2;
cs.cx = 1200;
cs.cy = 1000;

你调试一下 问题是不是出现在size.cy那边 负值跑到窗口上面去了?