另外如果你只想画矩形的话,用
BOOL Rectangle( int x1, int y1, int x2, int y2 );BOOL Rectangle( LPCRECT lpRect );
比较好
BOOL Rectangle( int x1, int y1, int x2, int y2 );BOOL Rectangle( LPCRECT lpRect );
比较好
解决方案 »
- 关于用VC6做串口通信,接收大量数据
- SDI或者MDI 如何使得视图宽口不填充整个客户区?并且怎样使视图窗口能随加载的图像大小变化?
- 请问:cmarkup里的函数setdoc和getdoc分别什么作用啊?
- [紧急]关于WM_COPYDATA的问题
- 如何在窗口中绘制一个文件夹和文件
- 我的一个VC程序,刻在光盘上,从光盘上复制下来的时候,编译能成功,但是运行时出错:cannot execute program.
- 有关access数据表中自动编号的问题?
- 疑难问题烦死我了,请大家帮帮忙!
- 如何在程序里切换多文档多视的窗口
- Date Time Picker全球化问题
- 讨论一个关于游戏的问题,详情见内
- 哪位网络编程高手能用mapi什么的发mail或用UDP协议发个字符串
SelectObject(hdcMem,hBitmap);
中hBitmap是否分配值,还是为空?
for(int i=0;i<48;i++)
for(int j=0;j<48;j++)
SetPixel(hdc,i,j,RGB(r,g,b));
还有两个问题:
1)我原来的程序为什么不行?
2)怎么加分?我的帖子有人回复之后好像就不能管理了。
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ; hBitmap = LoadBitmap (hInstance, MAKEINTRESOURCE(IDB_BITMAP2)) ; GetObject (hBitmap, sizeof (BITMAP), &bitmap) ;
cxSource = bitmap.bmWidth ;
cySource = bitmap.bmHeight ;break;
case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ;
hdcMem = CreateCompatibleDC (hdc) ;
SelectObject (hdcMem, hBitmap) ;
SetBkMode(hdc,TRANSPARENT);
// GetCursorPos(&Pos);
BitBlt (hdc,Pos.x, Pos.y, Pos.x+cxSource, cySource+Pos.y, hdcMem,0,0 ,MERGECOPY) ;
// FillRect(hdc,&rect,NULL);
DeleteDC (hdcMem) ;
ReleaseDC(hwnd,hdc);
EndPaint (hwnd, &ps) ;
break;
现在没有资源文件,只有rgb数组
hdcMem = CreateCompatibleDC(hdc) ;
SelectObject(hdcMem,hBitmap);
BitBlt(hdc,20,20,48,48,hdcMem,0,0,SRCCOPY);
DeleteDC(hdcMem);
EndPaint(hWnd,&ps);
你只是把图象画到屏幕,但是图象还是空的呢。CreateBitmap创建的图象不一定与当前设备兼容,建议用CreateCompatibleBitmap。
HBITMAP CreateBitmap(
int nWidth,
int nHeight,
UINT cPlanes,
UINT cBitsPerPel,
CONST VOID *lpvBits );