通常,为了绘制一条线,我们在 WM_PAINT
中绘制它LRESULT CALLBACK Display::DisplayWindowProc(HWND hWnd,UINT msg,WPARAM wParamm,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(msg)
{
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
MoveToEx(hdc,0,0,0);
LineTo(hdc,100,100);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc( hWnd, msg, wParamm, lParam);
}
但是,我想在任何时候画线,简单的例子:
int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR cmdLine,
int showCmd
)
{
//Do Other Things
Display dislpay;
display.DrawLine();
//Do Other Things
}
我的程序是面向对象的,我在Display类中显示东西,我想知道我是否可以在Display Class中的DrawLine()函数中绘制一条画线。
答案 0 :(得分:2)
您可以创建一个离屏DC,并选择一个适当大小的位图,并使用它来随时绘制。然后在WM_PAINT
上,你从屏幕外的DC进入windows DC。