多屏幕显示器编程( 七 )

    技术2022-05-11  154

    Programming for Multiple Monitors in Windows 98Figure 3: Cache the Work Area

    Continued from Figure 2: The Virtual Desktop

    This code snippet caches the work area of every monitor for later use.

    // global variables to store work area

    int gCount;

    LPRECT gpRectArray = NULL;

    void CacheWorkAreas()

    {

    // set the counter to 0

    gCount = 0;

    // delete old array, since number of monitors may

    // have changed

    delete [] gpRectArray;

    // allocate a new array sized to the number of monitors

    gpRectArray = new RECT[GetSystemMetrics(SM_CMONITORS)];

    EnumDisplayMonitors(NULL, NULL, monitorEnumInfoProc, 0);

    }

    // definition of callback function

    BOOL CALLBACK monitorEnumProc(

    HMONITORhmonitor,

    HDChdcMonitor,

    LPRClprcMonitor,

    DWORDdwData)

    {

    MONITORINFO mi;

    mi.cbSize = sizeof(mi)

    GetMonitorInfo(hmonitor, &mi);

    *gpRectArray[gCount] = mi.rcWork;

    gCount++;

    }

    Published as Power Programming in the 4/7/98 issue of PC Magazine.


    最新回复(0)