这个程序主要是模拟计算机远程监控,用一个计时器,每隔2.5秒截一次屏,把位图数据复制到缓存,再读出来贴到窗口上。本人是菜鸟,不会用调试。有一个CXX0030的ERROR 不只是甚意思。还请各位高手帮忙。。代码贴在下面。。 CBitmap bmp;//内存位图
CDC wdc; //设备环境
CDC* pDC; //指向桌面窗口的设备环境指针
CDC* pthisDC;//指向监控端窗口的显示设备环境指针。
CDC thisWdc;//监控端计算机设备环境
CBitmap thisBmp;//监控端计算机内存位图
CHAR dot[3276800];//位图数据缓冲区1024×800×4BOOL CMyDDBDlg::OnInitDialog()
{...
static CWindowDC ddc(GetDesktopWindow());//创建与桌面窗口相关联的显示设备描述表。。
pDC=&ddc;
wdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,1024,800);
wdc.SelectObject(&bmp);
SetTimer(1,2500,NULL);
...
}
void CMyDDBDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
wdc.BitBlt(0,0,1024,800,pDC,0,0,SRCCOPY);
bmp.GetBitmapBits(1638400*2,(LPVOID)dot);
//发送数据
//接收数据
//检查数据的完整性,等
//贴图。。
CRect rect;
GetClientRect(&rect);
pthisDC=GetDC();
thisBmp.CreateCompatibleBitmap(pthisDC,1024,800);
thisWdc.CreateCompatibleDC(pthisDC); thisWdc.SelectObject(&thisBmp);
thisBmp.SetBitmapBits(1638400*2,(LPVOID)dot);
pthisDC->StretchBlt(0,0,rect.Width(),rect.Height(),&thisWdc,0,0,1024,800,SRCCOPY);
CDialog::OnTimer(nIDEvent);
CDC wdc; //设备环境
CDC* pDC; //指向桌面窗口的设备环境指针
CDC* pthisDC;//指向监控端窗口的显示设备环境指针。
CDC thisWdc;//监控端计算机设备环境
CBitmap thisBmp;//监控端计算机内存位图
CHAR dot[3276800];//位图数据缓冲区1024×800×4BOOL CMyDDBDlg::OnInitDialog()
{...
static CWindowDC ddc(GetDesktopWindow());//创建与桌面窗口相关联的显示设备描述表。。
pDC=&ddc;
wdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,1024,800);
wdc.SelectObject(&bmp);
SetTimer(1,2500,NULL);
...
}
void CMyDDBDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
wdc.BitBlt(0,0,1024,800,pDC,0,0,SRCCOPY);
bmp.GetBitmapBits(1638400*2,(LPVOID)dot);
//发送数据
//接收数据
//检查数据的完整性,等
//贴图。。
CRect rect;
GetClientRect(&rect);
pthisDC=GetDC();
thisBmp.CreateCompatibleBitmap(pthisDC,1024,800);
thisWdc.CreateCompatibleDC(pthisDC); thisWdc.SelectObject(&thisBmp);
thisBmp.SetBitmapBits(1638400*2,(LPVOID)dot);
pthisDC->StretchBlt(0,0,rect.Width(),rect.Height(),&thisWdc,0,0,1024,800,SRCCOPY);
CDialog::OnTimer(nIDEvent);
解决方案 »
- VC中导入类文件(.h和.cpp)异常
- 用CreateNamePipe创建管道以后,ConnectNamedPipe出错。这是为什么?
- 在控件CListCtrl范围内显示右键菜单,要禁用并且变灰。现在能实现禁用,但并不能变灰。问题出在那里?
- 如何获得一个已知CBitmap对象的BITMAPINFO结构?
- 谁会有关CRecordSet基类的知识请进入帮忙谢谢谢谢
- 在初次使用vc中出现的编译错误,高手帮帮忙
- 到底怎样才能调试 DLL
- 有关VC中文拷贝乱码的问题
- 菜文,error C2440: 'type cast' : cannot convert from 'char *' to 'char [32]'
- 我在Tree的Item前加一个图标,下面的程序怎么看不见图象。
- 初学 请教,简单问题
- 属性页创建的问题,整不懂了!
pDC=&ddc;
最好不要做,而是应该每次需要抓图的时候get桌面的DC,然后抓图.........