类似windows画图板程序
hdc = GetDC(hwnd);
// 创建内存设备描述表
hdc1=CreateCompatibleDC(hdc);
// 创建位图
hBitMap1 = CreateCompatibleBitmap(hdc,10800,160);
我想在位图hBitMap1 上绘图,怎么做
给个思路
和代码 分不够还可以再加分
只要能解决问题
谢谢
hdc = GetDC(hwnd);
// 创建内存设备描述表
hdc1=CreateCompatibleDC(hdc);
// 创建位图
hBitMap1 = CreateCompatibleBitmap(hdc,10800,160);
我想在位图hBitMap1 上绘图,怎么做
给个思路
和代码 分不够还可以再加分
只要能解决问题
谢谢
现在内存中绘制图,然后使用BitBlt之类的函数绘制在窗口中?
2. 然后在hdc1上绘图就行了
windows画图板 他是在位图上绘的吧 然后拷贝在客户区的 是不是
我的程序 和windows画图板很相似
就是实现这个功能
怎么做
pDC->MoveTo(point);
pDC->LineTo(point1);
之类的
参考这篇文章http://dev.yesky.com/44/2316544.shtml
setpixel:点
moveto(point),lineto(point)直线
Rectangle:矩形
ellipse:椭圆
setpixel:点
moveto(point),lineto(point)直线
Rectangle:矩形
ellipse:椭圆
setpixel:点
moveto(point),lineto(point)直线
Rectangle:矩形
ellipse:椭圆
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;
hBitmap = LoadBitmap (hInstance, TEXT ("Bricks")) ;
GetObject (hBitmap, sizeof (BITMAP), &bitmap) ;
cxSource = bitmap.bmWidth ;
cySource = bitmap.bmHeight ;
return 0 ;
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
hdcMem = CreateCompatibleDC (hdc) ;
SelectObject (hdcMem, hBitmap) ;
for (y = 0 ; y < cyClient ; y += cySource)
for (x = 0 ; x < cxClient ; x += cxSource)
{
BitBlt (hdc, x, y, cxSource, cySource, hdcMem, 0, 0, SRCCOPY) ;
}
DeleteDC (hdcMem) ;
EndPaint (hwnd, &ps) ;
return 0 ;大概思路 就是这样
自己多动脑子思考
别忘了 给我给分呀
CDC memDC;
CDC *pDC;
CBitmap bitmap;
pDC = ::GetDC();
memDC.CreateCompatibleDC(pDC);
bitmap.CreateCompatibleBitmap(pDC, VIDEOWIDTH, VIDEOHEIGHT);
memDC.SelectObject(&bitmap);
CPen pen;
pen.CreatePen(NULL , 1 , RGB(0,255,255));
memDC.SelectObject(&pen);
memDC.MoveTo(10 , 10);
memDC.LineTo(100,100);
pDC->BitBlt(0, 0, VIDEOWIDTH ,VIDEOHEIGHT , &memDC, 0 ,0 ,SRCCOPY);
pen.DeleteObject();