最近又把《windows程序开发 第5版》重新拾起来了,之前也学了一段时间,不过总是坚持不下去。呵呵,感觉太枯燥,一个很简单的功能要写一堆代码。不过要想了解底层的东西,使用C开发Windows程序是个不错的选择。

这两天看到了GDI部分,今日就尝试使用C语言绘制个矩形。

1.程序原理:使用C调用Windows的GDI函数,并使用定时器实现了动态的效果。

2.程序截图

 

3.程序使用vc6开发。

4.源码截图

 
  
  1. VOID CALLBACK myTimerProc (  HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)     
  2. {  
  3.     HDC hdc = GetDC(hwnd);  
  4.       
  5.     while(x<160)  
  6.     {  
  7.         SetPixel(hdc, x, 60, RGB(255,0,0));  
  8.         x++;  
  9.  
  10.         setPos(hwnd, x, 60);  
  11.           
  12.         if(x%3==0)  
  13.             break;  
  14.     }  
  15.  
  16.     if(x==160)  
  17.     {  
  18.         while(y<200)  
  19.         {  
  20.             SetPixel(hdc, x, y, RGB(255,0,0));  
  21.             y++;  
  22.               
  23.             setPos(hwnd, x, y);  
  24.  
  25.             if(y%3==0)  
  26.                 break;  
  27.         }  
  28.     }  
  29.  
  30.     if(x==160 && y==200)  
  31.     {  
  32.         while(z>20)  
  33.         {  
  34.             SetPixel(hdc, z, y, RGB(255,0,0));  
  35.             z--;  
  36.  
  37.             setPos(hwnd, z, y);  
  38.  
  39.             if(z%3==0)  
  40.                 break;  
  41.         }  
  42.           
  43.     }  
  44.  
  45.     if(x==160 && y==200 && z==20)  
  46.     {  
  47.         while(k>60)  
  48.         {  
  49.             SetPixel(hdc, 20, k, RGB(255,0,0));  
  50.             k--;  
  51.  
  52.             setPos(hwnd, 20, k);  
  53.  
  54.             if(k%3==0)  
  55.             {  
  56.                 break;  
  57.             }  
  58.                   
  59.         }  
  60.     }  
  61.  
  62.     ReleaseDC(hwnd, hdc);  

源码链接如下,感兴趣可以下载。

欢迎大家批评指正。