Capturing an Active Window (Visual C++ 5 and later)
Take the following steps to start a project and to add some code that will let you capture an active window.
| 1. | Start a new project as follows: | |
| 
 | Run Microsoft Visual C++ 5.0, select the File >New menu option, and do the following: | |
| 
 | a. | Click the Projects tab. | 
| 
 | b. | Select MFC AppWizard (exe) as the project type | 
| 
 | c. | In the Project name text box, specify ScrCap. | 
| 
 | d. | In the Location text box, specify the path of the project. | 
| 
 | e. | Click the OK button. | 
| 2. | In the Step 1 dialog box, do the following: | |
| 
 | a. | Select Dialog based. | 
| 
 | b. | Click the Next button. | 
| 3. | In the Step 2 of 4 dialog box, do the following: | |
| 
 | a. | Ensure that 3D controls is selected. | 
| 
 | b. | Select ActiveX controls. | 
| 
 | c. | Click the Next button. | 
| 4. | In the Step 3 of 4 dialog box, do the following: | |
| 
 | a. | For comments, ensure that Yes, Please is selected. | 
| 
 | b. | For how to use the MFC library, select As a shared DLL. | 
| 
 | c. | Click the Next button. | 
| 5. | In the Step 4 of 4 dialog box, just click Finish. Read New Project Information, and click OK. (The AppWizard creates the project files and opens the project.) | |
| 6. | Add #import and #include statements to your program so you can access the LEAD COM constants and classes: | |
| 
 | a. | In the Project Workspace, click the FileView tab. | 
| 
 | b. | Double-click the tutor files folder to open it. | 
| 
 | c. | Double-click the Header Files folder to open it. | 
| 
 | d. | Double-click the StdAfx.h file to edit it. | 
| 
 | e. | Add the following lines to the end of the file near //{{AFX_INSERT_LOCATION}} (keep in mind, you may have to change the path to where the dll's reside): | 
#import "c:\win98\system\ltrvr14n.dll"  no_namespace, named_guids
#import "c:\win98\system\ltr14n.dll"  no_namespace, named_guids
#import "c:\win98\system\ltrvw14n.ocx" no_namespace, named_guids
#import "c:\win98\system\ltrio14n.dll" no_namespace, named_guids
#import "c:\win98\system\ltrsc14n.dll" no_namespace, named_guids
| 7. | Edit the ScrCapDlg.cpp file and insert at the top of the file after the #include statement: | 
#include "leadraster.h"
| 8. | Add the LEAD Raster View Control (14.5) to your project: | |
| 
 | a. | In the Project Workspace, click the ResourceView tab. | 
| 
 | b. | Double-click the ScrCap resources folder to open it. | 
| 
 | c. | Double-click the Dialog folder to open it. | 
| 
 | d. | Double-click IDD_SCRCAP_DIALOG to design the dialog box. | 
| 
 | e. | Select the TODO... text control; then press the Delete key to delete it. | 
| 
 | f. | From the main menu, select Project > Add To Project > Components and controls. | 
| 
 | g. | Select Registered ActiveX controls. | 
| 
 | h. | Double-click the LEAD Raster View Control (14.5) icon. (The Confirm Classes dialog box appears.) | 
| 
 | i. | Ensure that CLEADRasterView, CLEADRaster and CPicture are checked. | 
| 
 | j. | Click OK to complete the selection. Click OK to insert the component. | 
| 
 | k. | Click the LEAD RasterView Control icon; then size and position the control as you want it to appear at run time. | 
| 
 | l. | Use the right mouse button to edit the properties of the new LEAD RasterView Control. | 
| 
 | m. | Change the ID to IDC_LEADRASTERVIEW1. | 
| 9. | Add a command button and set the ID and Caption properties as follows: | |
| 
 | ID | Caption | 
| 
 | IDC_CAPWIN | Capture Window | 
| 10. | Edit the ScrCapDlg.h file and change the definition of CScrCapDlg : CDialog by inserting the following lines after DECLARE_MESSAGE_MAP(): | |
public:
   ILEADRasterScr *m_pLEADRasterScr;
| 11. | Do the following to add m_LEADRasterView1 to the ScrCapDlg class and link the variable to the LEAD RasterView control using dynamic data exchange: | |
| 
 | a. | Press Ctrl-W. (The MFC ClassWizard dialog box appears.) | 
| 
 | b. | Click the Member Variables tab. | 
| 
 | c. | In the Class Name box, select CScrCapDlg. | 
| 
 | d. | In the Control IDs list, select IDC_LEADRASTERVIEW1. | 
| 
 | e. | Click the Add Variable... button. | 
| 
 | f. | Specify m_LEADRasterView1 as the variable name, and Control as the category. | 
| 
 | g. | Click OK to close the dialog box, and click OK to close the MFC ClassWizard. | 
| 12. | Edit the ScrCapDlg.cpp file and add the following code to the end of the OnInitDialog function (just before return TRUE): | |
   //Create the RasterScr object
   CoCreateInstance(CLSID_LEADRasterScr, NULL, CLSCTX_ALL, IID_ILEADRasterScr, (void**)&m_pLEADRasterScr);
| 13. | Press Ctrl-W to go to the MFC Class Wizard; then do the following: | |
| 
 | a. | In the Class name combo box, select CScrCapDlg. | 
| 
 | b. | In the Object IDs list box, select CScrCapDlg. | 
| 
 | c. | In the Messages list box, select WM_DESTROY. | 
| 
 | d. | Click the Add function button. Choose OK for the default function name (OnDestroy). | 
| 
 | e. | Click the Edit Code button to start entering the code. | 
| 
 | f. | Enter new code as follows (just before the CDialog::OnDestroy call): | 
   m_pLEADRasterScr->StopCapture ();
   m_pLEADRasterScr->Release();
| 14. | Back in MFC Class Wizard, do the following: | |
| 
 | a. | Click the Message Maps tab. | 
| 
 | b. | In the Class Name combo box, select CScrCapDlg. | 
| 
 | c. | In the Object IDs list box, select IDC_CAPWIN. | 
| 
 | d. | In the Messages list box, select BN_CLICKED. | 
| 
 | e. | Click the Add function button. Choose OK for the default function name (OnCapwin). | 
| 
 | f. | Click the Edit Code button and code the OnCapwin procedure as follows: | 
void CScrCapDlg::OnCapwin() 
{
   /* set the hot key to be F10 */
   m_pLEADRasterScr->PutCaptureHotKey (121);
   m_pLEADRasterScr->PutCaptureDelay (3000);
   m_pLEADRasterScr->CaptureActiveWindow ();
   m_LEADRasterView1.GetRaster().SetBitmap(m_pLEADRasterScr->GetBitmap ());
}
| 15. | On the main menu, select Build> Build ScrCap.exe to build the project. | 
| 16. | On the main menu, select Build> Execute ScrCap.exe to run the project. Click the Capture Window command button, select the window to capture, press F10 and wait for 3 seconds. |