#include <windows.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
HWND GetConsoleHwnd(void);
main()
{
HPEN hPen=CreatePen(PS_SOLID,2,RGB(76,96,107));
HPEN hPenw=CreatePen(PS_SOLID,2,RGB(25,255,255));
double PI=2*asin(1.0);
POINT Original={320,200};
int i,Min=0;
time_t T1;
struct tm *ptimer;
HWND hhandle=GetConsoleHwnd();
HDC hDC=GetDC(hhandle);
for(i=0;i<=99;i++)
{
T1=time(NULL);
ptimer=localtime(&T1);
Min=ptimer->tm_sec;
SelectObject(hDC,hPenw);
MoveToEx(hDC,Original.x,Original.y,NULL);
LineTo(hDC,Original.x+70*cos(360/60*PI/180*(double)Min),Original.y+70*sin(360/60*PI/180*(double)Min));
DeleteObject(hPen);
SelectObject(hDC,hPen);
MoveToEx(hDC,Original.x,Original.y,NULL);
LineTo(hDC,Original.x+70*cos(360/60*PI/180*(double)Min),Original.y+70*sin(360/60*PI/180*(double)Min));
DeleteObject(hPen);
Sleep(1000);
}
return 0;
}
HWND GetConsoleHwnd(void)
{
#define MY_BUFSIZE 1024
HWND hwndFound;
char pszNewWindowTitle[MY_BUFSIZE];
char pszOldWindowTitle[MY_BUFSIZE];
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
wsprintf(pszNewWindowTitle,"%d/%d",
GetTickCount(),
GetCurrentProcessId());
SetConsoleTitle(pszNewWindowTitle);
Sleep(40);
hwndFound=FindWindow(NULL, pszNewWindowTitle);
SetConsoleTitle(pszOldWindowTitle);
return(hwndFound);
}
在控制台下使用windowsGDI绘图的时候后面前一个绘图不会被擦除
答案:1 悬赏:0 手机版
解决时间 2021-02-07 11:36
- 提问者网友:放下
- 2021-02-06 16:58
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-02-06 17:48
Sleep(1000);
// 区域无效
RECT rect={0,0,2000,2000};
InvalidateRect(hhandle,&rect,TRUE);
// 更新
UpdateWindow(hhandle);
}
// 区域无效
RECT rect={0,0,2000,2000};
InvalidateRect(hhandle,&rect,TRUE);
// 更新
UpdateWindow(hhandle);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯