本人在做mobile应用的时候,希望将上面的任务栏取消掉,并重新绘制任务栏。绘制过程如下:
(1),初始化的时候查找到任务栏窗口句柄CWnd * pTaskBar,隐藏该窗口
(2),在OnPaint函数中做了如下工作
CDC memDC;
CDC *pDC = GetDC();
CBitmap bmp;
BITMAP bmpInfo;
bmp.LoadBitmap(IDB_TITLE);
bmp.GetBitmap(&bmpInfo);
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&bmp);
CRect rcTaskBar,rcCloseBtn;
CWnd * pTaskBar = CWnd::FindWindow(_T("HHTaskBar"), NULL);
pTaskBar->GetWindowRect(&rcTaskBar);
pDC->DPtoLP(&rcTaskBar);
pDC->BitBlt(rcTaskBar.left,rcTaskBar.top,bmpInfo.bmWidth,bmpInfo.bmHeight,&memDC,0,0,SRCCOPY);
ReleaseDC(&memDC);
结果却出现了如下状况,每次图片总是以客户区坐标的左上角开始绘制。本人对于MFC的坐标系统理解不深,不知道问题究竟出在哪里?调试的时候rcTaskBar的值为(0,0,240,26),是不是CDC类的默认视口起点是在客户区左上角?窝该如何才能解决这个问题呢?
(1),初始化的时候查找到任务栏窗口句柄CWnd * pTaskBar,隐藏该窗口
(2),在OnPaint函数中做了如下工作
CDC memDC;
CDC *pDC = GetDC();
CBitmap bmp;
BITMAP bmpInfo;
bmp.LoadBitmap(IDB_TITLE);
bmp.GetBitmap(&bmpInfo);
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&bmp);
CRect rcTaskBar,rcCloseBtn;
CWnd * pTaskBar = CWnd::FindWindow(_T("HHTaskBar"), NULL);
pTaskBar->GetWindowRect(&rcTaskBar);
pDC->DPtoLP(&rcTaskBar);
pDC->BitBlt(rcTaskBar.left,rcTaskBar.top,bmpInfo.bmWidth,bmpInfo.bmHeight,&memDC,0,0,SRCCOPY);
ReleaseDC(&memDC);
结果却出现了如下状况,每次图片总是以客户区坐标的左上角开始绘制。本人对于MFC的坐标系统理解不深,不知道问题究竟出在哪里?调试的时候rcTaskBar的值为(0,0,240,26),是不是CDC类的默认视口起点是在客户区左上角?窝该如何才能解决这个问题呢?