经常使用vc++进行窗口类设计的程序员经常会用到设备上下文dc来做一些画图的工作,但是设备上下文到底是什么呢?
当我们在屏幕上显示一些图形时,会调用底层显示芯片的一些绘图函数,如果每次我们做画线这样的工作都要调用显示芯片的提供的函数或类进行工作的时候,显然不太现实。而且这样也影响了程序的可移植性。因为各种显示芯片设计的绘图函数是不尽相同的。所以在vc++的编程过程中,我们把这个工作交给系统来做。设备上下文hdc就是用来完成这个任务的。同一应用程序可以在不同类型的显卡,显示器上运行而不必重写整个程序。
那么如何获得设备上下文的句柄呢?我们可以用GetDc();这个函数,如下所示:
HDC hdc;
hdc=::GetDC(NULL);//获得桌面设备环境
::Rectangle(100,100,500,500);
::ReleaseDC(hdc);