Setting Vector Automation Properties
Start with the project you created in Tutorial3: The Automation Container.
Take the following steps to add the capability to change to color of the vector objects created with automation:
1. |
Click on the "Resource View" tab of the project workspace. |
2. |
Click to open the "VecAut resources" branch. |
3. |
Click to open the "Menu" branch. |
4. |
Double click "IDR_MAINFRAME". |
5. |
Add a menu item "Preferences". |
6. |
Drag the menu item to appear after "Edit" and before "View". |
7. |
Add another menu item under "Preferences" called "Color..." |
8. |
Right click on "Color" and choose "Add Event Handler…" |
9. |
For "Class name" select "CVecAutApp". |
10. |
For "Object IDs" select "ID_PREFERENCES_COLOR". |
11. |
For "Messages" select "COMMAND". |
12. |
Click the "Add and Edit" |
14. |
Add the following code: |
void CVecAutApp::OnPreferencesColor()
{
AUTOMATIONVECTORPROPERTIES AutVecProps;
//Get current automation PEN properties
AutVecProps.nSize = sizeof(AUTOMATIONVECTORPROPERTIES);
AutVecProps.dwMask = AUTOMATION_VECTOR_PEN;
m_Automation.GetVectorProperty (&AutVecProps);
//Display color picker dialog to select new color
CColorDialog dlg;
dlg.m_cc.Flags |= CC_FULLOPEN | CC_RGBINIT;
dlg.m_cc.rgbResult = AutVecProps.Pen.NewPen.LogPen.lopnColor;
if (IDOK == dlg.DoModal())
{
AutVecProps.Pen.bExtPen = FALSE;
AutVecProps.Pen.NewPen.LogPen.lopnColor = dlg.GetColor();
}
m_Automation.SetVectorProperty (&AutVecProps);
}
15. |
Compile and run the demo. |
16. |
Choose View->Vector Toolbar. |
17. |
Choose Preferences->Color and select a color from the color picker dialog. |
18. |
Select the Line tool from the Vector Toolbar and draw a line. It will be in the color that you selected. |