Обычно, чтобы нарисовать линию, мы рисуем его в WM_PAINTРисование линии Заграницей 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, и мне было интересно, могу ли я сделать линию ничьей в такой функции, как DrawLine() в Display Class.
Как я могу это сделать? –
@ErfanAhmadi Я не делал этого много лет, но он выглядит примерно так: создайте DC, создайте растровое изображение, в DC выберите растровое изображение, используйте DC для рисования и в вызове 'WM_PAINT', например. ['BitBlit'] (https://msdn.microsoft.com/en-us/library/dd183370%28v=vs.85%29.aspx) для копирования с экрана вне экрана в окно DC. SEarch [MSDN] (https://msdn.microsoft.com/en-us/library/ms123401.aspx) для ссылок. –
Но в моем случае я не использую растровые изображения. Я не знаю, что это связано с растровыми изображениями. –