Exemple #1
0
INT_PTR EllipseTypeInDlgProc::DlgProc(TimeValue t,IParamMap2 *map,HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch (msg) 
	{
		case WM_COMMAND:
			switch (LOWORD(wParam))
			{
				case IDC_TI_CREATE: 
				{
					Matrix3 tm(1);
					Point3 pos = theEllispeTypeInBlock.GetPoint3(PB_TI_POS);
					float length = theEllispeTypeInBlock.GetFloat(PB_TI_LENGTH);
					float width = theEllispeTypeInBlock.GetFloat(PB_TI_WIDTH);
					float thickness = theEllispeTypeInBlock.GetFloat(PB_TI_THICKNESS);
					tm.SetTrans(pos);

					ro->suspendSnap = FALSE;

					EllipseObject* new_object = dynamic_cast<EllipseObject*>(ro->ip->NonMouseCreate(tm));
					if(new_object)
					{
						new_object->GetParamBlockByID(ellipse_params)->SetValue(PB_LENGTH, t, length);
						new_object->GetParamBlockByID(ellipse_params)->SetValue(PB_WIDTH, t, width);
						new_object->GetParamBlockByID(ellipse_params)->SetValue(PB_THICKNESS, t, thickness);
					}

					return TRUE;	
				}
			}
			break;	
	}
	return FALSE;
}