HMI使用自定义控件流程

1.定义控件ID号,以FO_COMP_CUSTOM为基数


#define SCENEENTITY_SIMULATOR_SHAPE FO_COMP_CUSTOM + 210


2.编写控件类,并继承于CFOBitmapShape
具体实现可以在程序中找例子,重新OnDraw3d这个虚函数来实现控件的绘制


3. 在MainFrm.cpp中,在工具栏中创建出按钮,用一个唯一ID号


CBCGPRibbonPanel* pPanelEntity = pScenario->AddPanel (_T("ENTITY"), m_PanelImages.ExtractIcon (3));
pPanelEntity->Add (new CBCGPRibbonButton (ID_SCENE_ENTITY_SIMULATOR,  _T ("模拟器"), nimgid, nimgid)); nimgid++;


4. 在视图(View)的h和cpp中,编写按钮事件函数声明和实现


afx_msg void OnSceneEntitySimulator();
ON_COMMAND(ID_SCENE_ENTITY_SIMULATOR, OnSceneEntitySimulator)
void CCosiWorksView::OnSceneEntitySimulator() 
{
ResetToSelectMode();
m_drawshape = SCENEENTITY_SIMULATOR_SHAPE;
SetCurrentDrawingCursor(IDC_FO_DRAWRECT_CURSOR);
m_action_state = State_DrawRect;
m_bUpRightMode = FALSE;
}


5. 在CExtTabModel类的DoCreateShapeByType函数中new出控件,并传入适当的参数,比如尺寸大小之类的


在switch case 控件ID,来实现。

猜你喜欢

转载自blog.csdn.net/sukhoi27smk/article/details/80506728