case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetWindowRect(hwnd,&rc);
memhdc=CreateCompatibleDC(hdc);
bitmapdc=CreateCompatibleDC(hdc);
oldbitmap=(HBITMAP)SelectObject(bitmapdc,hBitmap);
for(i=0;i<MAXN;i++)
{
for(j=0;j<MAXN;j++)
{
StretchBlt(memhdc,i*16,j*16,16,16,bitmapdc,0,hash[i][j].GetIsDo()*16,16,16,SRCCOPY);
}
}
TextOut(memhdc,0,0,TEXT("hello"),5);
BitBlt(hdc,0,0,rc.right-rc.left,rc.bottom-rc.top,memhdc,0,0,SRCCOPY);
SelectObject(bitmapdc,oldbitmap);
DeleteDC(bitmapdc);
DeleteDC(memhdc);
EndPaint(hwnd,&ps);
return 0;
我不用memhdc 直接在hdc上却能画出来 为什么 求指教
hdc=BeginPaint(hwnd,&ps);
GetWindowRect(hwnd,&rc);
memhdc=CreateCompatibleDC(hdc);
bitmapdc=CreateCompatibleDC(hdc);
oldbitmap=(HBITMAP)SelectObject(bitmapdc,hBitmap);
for(i=0;i<MAXN;i++)
{
for(j=0;j<MAXN;j++)
{
StretchBlt(memhdc,i*16,j*16,16,16,bitmapdc,0,hash[i][j].GetIsDo()*16,16,16,SRCCOPY);
}
}
TextOut(memhdc,0,0,TEXT("hello"),5);
BitBlt(hdc,0,0,rc.right-rc.left,rc.bottom-rc.top,memhdc,0,0,SRCCOPY);
SelectObject(bitmapdc,oldbitmap);
DeleteDC(bitmapdc);
DeleteDC(memhdc);
EndPaint(hwnd,&ps);
return 0;
我不用memhdc 直接在hdc上却能画出来 为什么 求指教
解决方案 »
- 如何通过m_hwnd获得原先的类对象?
- 如何把Excel表中的数据导入并使用
- [简单问题]在CString变量中如何提取我需要的字符串
- 用vc画图(70分)
- 如何在界面内加入对话框条
- 如何在ATL中与SQL SERVER2000进行插入记录操作(有代码最好)
- 怎么改变标题蓝的颜色,不要蓝色的
- 谁知道怎么在VC环境里把16*16的小图标干掉?(已有32*32在里面) 不要告诉我删除了再建一个32*32的
- easy->我用VC++的向导生成了一个基于对话框的MFC应用程序框架,我想在这个对话框上加菜单,不知如何实现?另我用vc++生成单文档MFC应用程序框架,如何在文档区加入按钮等控件?
- 关于创建BSTR的问题
- 代理服务器问题
- 学习api时的迷乱
也就是说,你用的memhdc还没有指定画布的尺寸,也就是没有画布,那么,StretchBlt就无法在其上贴东西了。