代码如下:
switch (uMsg)
{
static HBITMAP g_hBitmap;
static HDC g_hDC;
case WM_CREATE:
{
HDC hdc = GetDC(hWnd);
g_hDC = CreateCompatibleDC(hdc);
g_hBitmap = CreateCompatibleBitmap(hdc, 250, 768);
ReleaseDC(hWnd, hdc);
SelectObject(g_hDC, g_hBitmap);
SelectObject(g_hDC, GetStockObject(WHITE_PEN));
MoveToEx(g_hDC, 0, 0, NULL);
LineTo(g_hDC, 50, 20);
}
break;
case WM_LBUTTONDOWN:
MoveToEx(g_hDC, 40, 40, NULL);
LineTo(g_hDC, 90, 60);
SendMessage(hWnd, WM_PAINT, 0, 0);
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
BitBlt(hdc, 0, 0, 250, 768, g_hDC, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
}
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
代码只抄了一部分;
背景刷是黑色的。
为什么按下鼠标后第二条线不显示?
新人分少!大神们将就下哈 ^_^
位图
switch (uMsg)
{
static HBITMAP g_hBitmap;
static HDC g_hDC;
case WM_CREATE:
{
HDC hdc = GetDC(hWnd);
g_hDC = CreateCompatibleDC(hdc);
g_hBitmap = CreateCompatibleBitmap(hdc, 250, 768);
ReleaseDC(hWnd, hdc);
SelectObject(g_hDC, g_hBitmap);
SelectObject(g_hDC, GetStockObject(WHITE_PEN));
MoveToEx(g_hDC, 0, 0, NULL);
LineTo(g_hDC, 50, 20);
}
break;
case WM_LBUTTONDOWN:
MoveToEx(g_hDC, 40, 40, NULL);
LineTo(g_hDC, 90, 60);
SendMessage(hWnd, WM_PAINT, 0, 0);
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
BitBlt(hdc, 0, 0, 250, 768, g_hDC, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
}
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
代码只抄了一部分;
背景刷是黑色的。
为什么按下鼠标后第二条线不显示?
新人分少!大神们将就下哈 ^_^
位图
解决方案 »
- 有关VC中窗口融合技术的提问
- 两个程序读写同一个文件,如何避免冲突????????????
- 关于UuidCreateSequential函数在哪个头文件中?
- 在VC++ 6.0如何操作XML文档?
- 如何获取窗体的宽度,高度
- vc访问access2000的错误“该集合中没有此项目”<===AfxGetModuleState()->m_dwVersion=0x0601;
- 莫名其妙的小错误 请帮忙
- UP有分,有关MFC7.0需要的OleAcc.dll在95无法找到的问题
- 今天上午看windows程序设计第二章(unicode部分)时,想睡觉!各位来谈谈自己的看法吧!
- 求大神。。。vs2010连sql2008r2连不上
- 碉堡了,GetClientRect不会用
- 单文档中拷贝、粘贴功能的实现
InvalidateRect(hWnd,0,TRUE);
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static HBITMAP g_hBitmap;
static HDC g_hDC;
HDC hdc;
PAINTSTRUCT ps; switch (uMsg)
{
case WM_CREATE:
hdc = GetDC(hWnd);
g_hDC = CreateCompatibleDC(hdc);
g_hBitmap = CreateCompatibleBitmap(hdc, 250, 768);
ReleaseDC(hWnd, hdc);
SelectObject(g_hDC, g_hBitmap);
SelectObject(g_hDC, GetStockObject(WHITE_PEN));
MoveToEx(g_hDC, 0, 0, NULL);
LineTo(g_hDC, 50, 50);
break;
case WM_LBUTTONDOWN:
MoveToEx(g_hDC, 50, 50, NULL);
LineTo(g_hDC, 100, 160);
InvalidateRect(hWnd,0,TRUE);
break;
case WM_PAINT:
{
HDC hdc = BeginPaint(hWnd, &ps);
BitBlt(hdc, 0, 0, 250, 768, g_hDC, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
}
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
InvalidateRect 使窗口 无效 !!!! 然后 才要 重绘 !!!!