在C++Builder中動態創建控件並處理添加事件處理


主頁:http://www.maxss.net
郵件:[email protected]


  當開發類似解釋程序或實現可視化操作功能等一類的應用程序時,都需要動態地創建控件(對象),而且還要爲這些控件添加適當的事件處理程序,下面將介紹在C++Builder中如何實現基本的實現框架。

動態創建控件的一般過程:
  TButton *btn = new TButton(this);
  btn->Caption = "Button1";
  btn->Parent = this;
  btn->Show();

下面結合一個動態生成菜單的例子來實踐如何動態創建控件並處理添加事件處理。

  先編寫一個函數用向一個已存在的菜單對象中插入菜單項:
  void __fastcall TForm1::AddContextMenuItem(TPopupMenu *pMenu,
    AnsiString caption, unsigned int tag, TNotifyEvent notifyEvent)

  參數:
  pMenu: 已存在的TPopupMenu對象指針
  caption: 菜單項的標題
  tag: 菜單項的tag值,用於標識不同的TMenuItem對象
  notifyEvent: 該菜單項的事件處理函數

函數實現:

然後編寫調用AddContextMenuItem(...)的函數CreateContextMenu(),定義如下:

FContextMenu是TForm1的成員變量,UpdateContextMenuItem()是用於在FContextMenu的Popup事件中更新菜單項。

MenuItemClick與NullNotifyEvent都是TForm1中成員函數,是動態創建的控件的事件處理函數,格式爲:
void __fastcall TForm1::MenuItemClick(TObject *Sender)
void __fastcall TForm1::NullNotifyEvent(TObject *Sender)

  上面是我自己的一點心得,希望可以與大學繼續交流程序設計的經驗。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章