函数功能:该函数通过使用指定的名字为一个设备创建设备上下文环境。

    函数原型:HDC CreateDC(LPCTSTR lpszDrive, LPCTSTR lpszDevice, LPCTSTR lpszOutput, CONST DEVMODE *lplnitData);

    参数:

    lpszDriver:

    Windows NT:指向一个以Null结尾的字符串的指针,该字符串为显示驱动指定DISPLAY或者指定一个打印驱动程序名,通常为WINSPOOL。

    Windows 95和Windows 98:在基于32位的应用程序中,该参数被忽略或者为Null。但有一个例外,可以通过指定以null结尾的DISPLAY来得到一个显示设备上下文环境,如果该参数为DISPLAY。其他所有的参数必须为Null。

    lpszDevice:指向一个以null结尾的字符串的指针,该字符串指定了正在使用的特定输出设备的名字,它不是打印机模式名。LpszDevice参数必须被使用。

    lpszOutput:该参数在32位应用中被忽略;并置为Null,它主要是为了提供与16位应用程序兼容,更多的信息参见下面的注释部分。

    LplnitData:指向包含设备驱动程序的设备指定初始化数据的DEVMODE结构的指针,DocumentProperties函数检索指定设备获取已填充的结构,如果设备驱动程序使用用户指定的缺省初始化值。则lplnitData参数必须为Null。

    返回值:成功,返回值是特定设备的设备上下文环境的句柄;失败,返回值为Null。

    Windows NT:若想获得更多错误信息,可调用GetLastError函数。

    注释:16位的Windows应用程序使用lpszOutput参数指定一通讯口的名字或者指定打印到文件,基于32位的Windows应用程序不需要指定通讯口的名字,32位应用程序使可以通过调用StartDoc函数来完成打印到文件的功能,在调用StartDoc函数时,使用DOCINFO结构。该结构的lpszOutput成员指定了输出文件名的路径。当不再需要该设备上下文环境时可调用DeleteDc函数删除它。

    ICM:通过设置DEVMODE结构(由plnitDufa参数指定)的dmlCMMethod元素为合适值,可使ICM激活。

    Windows CE:如果没有给lpszDriver参数驱动程序名,则Windows返回一个显示设备上下文环境,Windows CE忽略lpszDevice参数,Windows CE把lplnitData和lpszOutput参数传送给驱动程序而不做任何修改。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:2.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib,Unicode:在Windows NT上实现为Unicode和ANSI两种版本。