以前一直不懂,人怎麼會依賴一支香菸,後來才明白,在一個人感到煩惱無助的時候,那手指上的一點點光真的很溫暖。。。
---- 網易雲熱評
一、先在視窗畫一個圓
//定義圓的直徑和座標#define 直徑 100int g_x = 100;int g_y = 100;case WM_PAINT: 繪圖(hWnd); break;void 繪圖(HWND hWnd){ PAINTSTRUCT p = { 0 };//建立畫筆 HDC hdc = BeginPaint(hWnd, &p); Ellipse(hdc, g_x, g_y, g_x + 直徑, g_y + 直徑); EndPaint(hWnd, &p);}
二、建立定時器
case WM_CREATE://建立定時器 SetTimer(hWnd, 10001, 10, NULL); break;
三、設定定時器的操作
int 左往右 = 1;int 右往左 = 0;int 上往下 = 1;int 下往上 = 0;case WM_TIMER: 定時器視窗處理(hWnd, wParam); break;void 定時器視窗處理(HWND hWnd, WPARAM wParam){ if (wParam==10001) { //獲取當前客戶區空間,20毫秒獲取一次,因為視窗隨時變化 RECT rc = {0}; GetClientRect(hWnd, &rc); //如果移動到下面邊緣,就往上走 if (g_y >= rc.bottom - 直徑) { 下往上 = 1; 上往下 = 0; } //如果移動到上面邊緣,就往下走 if (g_y <= rc.top) { 下往上 = 0; 上往下 = 1; } //如果移動到右面邊緣,就往左走 if (g_x >= rc.right - 直徑) { 右往左 = 1; 左往右 = 0; } //如果移動到左面邊緣,就往右走 if (g_x <= rc.left) { 右往左 = 0; 左往右 = 1; } if (左往右) { g_x++; } if (右往左) { g_x--; } if (上往下) { g_y++; } if (下往上) { g_y--; } InvalidateRect(hWnd, NULL, FALSE); }}
執行結果:
最新評論