VC中图形编程的基础知识(1)

图形设备接口(GDI)是用于将应用程序与具体硬件相分离,使windows支持的应用程序在任何windows支持的图形输出设备上显示。

窗口应用程序输出图形的具体步骤:

(1)取得指定窗口的当前显示设备上下文。显示设备上下文是一个数据结构,包括窗口的参数及各种图形,文字属性,以及对以后的图形,文字输出的控制。
(2)选择用户坐标系及映射方式。
(3)设定用户坐标系中的观察窗口和设备坐标系中的显示视图。
(4)输出图形,文字和图像。
(5)释放所使用的显示设备上下文。


1  设备上下文的获取:

(1)在指定区域绘图的hdc:
    在处理WM_PAINT消息时:
    case WM_PAINT:
    hdc=BeginPaint(hwnd,&ps);
    ...
    EndPaint(hwnd,&ps);

    //其中  HDC hdc;  PAINTSTRUCT ps;

    从BeginPaint获取设备上下文句柄hdc后,就可以在ps指出的rcPaint的矩形中绘图。EndPaint使这一区域有效。

(2)在整个用户区域绘图的hdc.

     hdc=GetDC(hwnd);
     ...
     RelaeseDC(hwnd,hdc);
(3)在整个窗口绘图的hdc的获取。
    hdc=GetWindowDC(hwnd);
    ...
    ReleaseDC(hdc);
   
(4)在整个显示器区域内绘图的hdc.
    hdc=CreateDC(lpszDevice,lpszOutput,lpData);
    ...
    ReleaseDC(hdc);
  
    如要在屏幕上绘图,可调用:
    hdc=CreateDC("DISPLAY",NULL,NULL,NULL);
    使用打印机输出图形,可调用:
    hdc=CreateDC("IBMGRX","IBM Graphics","LPT1",NULL);
    //参数1:设备驱动的DOS文件名
    //参数2:专用设备名
    //参数3:物理输出介质的DOS文件名
    //参数4:设备驱动程序中DEVMODE结构体中的初始化数据

    如不想获取设备上下文,只想得到其信息,可调用:
    hdcInfo=CreateDC(lpszDevice,lpszOutput,lpData);
    ...
    ReleaseDC(hdcInfo);

    如想对位图的内存进行操作,如下:
    hdcMem=CreateCompatiableDC(hdc);
    ...
    DeleteDC(hdcMem);

posted on 2009-03-31 19:43  王建一  阅读(1276)  评论(0)    收藏  举报

导航