I think this isn't supported, yet.
But nothing is impssible at VASmalltalk
I think you might have to extend VAST a little.
There are several C++ / OpenGL tutorials on the web, which explain how to open a Widget on the second display.
I think you might need to add the following Plattformfunctions and OSObjects to VAST.
For the GetMonitorInfo()-call you might be able to use the already existing classes OSMonitorInfo1 and 2. Have a look at OsDevmode on how to use them.
monitorinfo.cbSize = sizeof(MONITORINFOEX);
GetMonitorInfo( hMonitor, &monitorinfo );
long x, y, width, height;
x = monitorinfo.rcMonitor.left;
y = monitorinfo.rcMonitor.top;
width = monitorinfo.rcMonitor.right - monitorinfo.rcMonitor.left;
height = monitorinfo.rcMonitor.bottom - monitorinfo.rcMonitor.top;
HWND hWnd = CreateWindow( classname, monitorinfo.szDevice,
x, y, width, height,
Here's an example on how to swith the resolution of your screen. It uses the OSDevMode for this.
devmodePtr := OsDevMode new
dmSize: self class fixedSize;
"Getting the actual devMode to be changed and set later on."
iModeNum: -1 "get current mode"
"You could alsocollect all available devmodes on you system by iterating from 1 to xyz changing the iModeNum until the OSCall returns false.
Using the devmode you desire calling the changeDisplaySettings"
"Changing the resolution values"
(devmodePtr changeDisplaySettings: CdsTest) ~= 0 ifTrue:[^self error: 'Wasn't able to change the Devmode'].
devmodePtr changeDisplaySettings: CdsFullscreen.
I think using MonitorInfo might work like this, too.
CreateDC should then also be done on the handle of your second monitor.
Well, a lot to do, but not impossible