For an eBook or printed book on using the API with Liberty BASIC, see: APIs for Liberty BASIC
CreateCompatibleDC
Liberty BASIC allows us to display graphics in a graphicbox control or a window opened for graphics. We cannot draw in memory with native commands. We can draw in memory with GDI commands. This requires us first to create a memory Device Context. We do this with CreateCompatibleDC.
The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device.
The syntax is as follows.
calldll#gdi32,"CreateCompatibleDC",_
hdc asulong,_ 'graphicbox DC
hMemDC asulong'memory DC
We pass into the function the handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen.If the function succeeds, the return value is the handle to a memory DC. If it fails, the return value is 0.
Here is a snippet with the function to get the graphicbox DC, followed by the function to create a memory DC.
h=hwnd(#1.g)'graphicbox handle'get device context for window:calldll#user32,"GetDC",_
h asulong,_ 'graphicbox handle
hdc asulong'returns handle to device contextcalldll#gdi32,"CreateCompatibleDC",_
hdc asulong,_ 'graphicbox DC
hMemDC asulong'memory DC
Contents of Memory DC
A memory DC exists only in memory. When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high. Before an application can use a memory DC for drawing operations, it must select a bitmap of the correct width and height into the DC with SelectObject. The bitmap can be an image that was loaded into memory with the native LOADBMP, command or it can be loaded with the API to LoadImageA or it can be loaded by a third-party DLL. It can also be created in memory with the CreateCompatibleBitmap function, which allows us to specify the height, width, and color organization required.
We'll discuss CreateCompatibleBitmap in the next tutorial.
DeleteDC
The DeleteDC function deletes the specified device context. The return value is nonzero if the function succeeds.
calldll#gdi32,"DeleteDC",_
hMemDC asulong,_ 'DC to delete
re aslong'nonzero=success
-
CreateCompatibleDC | Contents of Memory DC | DeleteDC
Some text below is copied from the Microsoft Developers Network Library.
For an eBook or printed book on using the API with Liberty BASIC, see:
APIs for Liberty BASIC
CreateCompatibleDC
Liberty BASIC allows us to display graphics in a graphicbox control or a window opened for graphics. We cannot draw in memory with native commands. We can draw in memory with GDI commands. This requires us first to create a memory Device Context. We do this with CreateCompatibleDC.The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device.
The syntax is as follows.
We pass into the function the handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen.If the function succeeds, the return value is the handle to a memory DC. If it fails, the return value is 0.
Here is a snippet with the function to get the graphicbox DC, followed by the function to create a memory DC.
Contents of Memory DC
A memory DC exists only in memory. When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high. Before an application can use a memory DC for drawing operations, it must select a bitmap of the correct width and height into the DC with SelectObject. The bitmap can be an image that was loaded into memory with the native LOADBMP, command or it can be loaded with the API to LoadImageA or it can be loaded by a third-party DLL. It can also be created in memory with the CreateCompatibleBitmap function, which allows us to specify the height, width, and color organization required.We'll discuss CreateCompatibleBitmap in the next tutorial.
DeleteDC
The DeleteDC function deletes the specified device context. The return value is nonzero if the function succeeds.GDI Tutorials Home