窗体控件

CToolTips
CToolTipCtrl ToolTipWnd;   ///////////提示信息显示
///////////////OnInitialUpdate///////////
EnableToolTips(true);///支持ToolTips功能
ToolTipWnd.Create(this);
ToolTipWnd.AddTool(this,"this");
ToolTipWnd.SetMaxTipWidth(300);//支持“/r/n” 
ToolTipWnd.Activate(false);
//////////PreTranslateMessage///////
ToolTipWnd.RelayEvent(pMsg);//显示Tips
//////////////OnMouseMove/////////////
ToolTipWnd.Activate(true);
ToolTipWnd.UpdateTipText(CString,this);/////显示站点信息

 
CMFCPropertyGridCtrl

静态创建:使用ClassWizard为控件添加一个变量m_propertyGrid。


"Description Rows Count"指的是下面的描述部分有几行。
"Enable Description Area"表示是否启动下面的描述功能
"Enable Header"表示是否启动表头
"Mark Modified Properties"表示是否着重显示更改项


HDITEM item; 

item.cxy=120; 
item.mask=HDI_WIDTH; 
m_propertyGrid.GetHeaderCtrl().SetItem(0, new HDITEM(item)); 


CMFCPropertyGridProperty* pProp2 = 
new CMFCPropertyGridProperty(_T("我是不是帅哥?"),_T("看选项"), _T("")); 
pProp2->AddOption(_T("是")); 
pProp2->AddOption(_T("肯定是")); 
pProp2->AddOption(_T("绝对是")); 
p
Prop2->AllowEdit(FALSE);
m_propertyGrid.AddProperty(pProp2); 


CMFCPropertyGridColorProperty * pProp3 = 
new CMFCPropertyGridColorProperty
(
_T("颜色"), RGB(0, 111, 200));                   pProp3->EnableOtherButton(_T("其他..."));

pProp3->EnableAutomaticButton(_T("默认"), ::GetSysColor(COLOR_3DFACE)); m_propertyGrid.AddProperty(pProp3); 
CMFCPropertyGridFileProperty * pProp4 = new CMFCPropertyGridFileProperty
(
_T("打开文件"), TRUE, _T("D:\\test.txt"));         m_propertyGrid.AddProperty(pProp4); 
 
LOGFONT font = {NULL}; 
CMFCPropertyGridFontProperty * pProp5 = new CMFCPropertyGridFontProperty(_T("选择字体"), font);                                            m_propertyGrid.AddProperty(pProp5); 


CMFCPropertyGridProperty * group1 = new CMFCPropertyGridProperty(_T("分组1"));CMFCPropertyGridProperty * group2 = new CMFCPropertyGridProperty(_T("分组2"));group1->AddSubItem(pProp1);      group1->AddSubItem(pProp2); 
group2->AddSubItem(pProp3);      group2->AddSubItem(pProp4); 
group2->AddSubItem(pProp5); 
m_propertyGrid.AddProperty(group1);       m_propertyGrid.AddProperty(group2); 

动态创建:
CMFCPropertyGridCtrl * propertyGrid = new CMFCPropertyGridCtrl; 
propertyGrid->Create(WS_CHILD | WS_BORDER | WS_VISIBLE, CRect(400, 100, 600, 200), this, WM_USER + 100); 
propertyGrid->EnableHeaderCtrl(TRUE);  //使用表头 
propertyGrid->SetVSDotNetLook();  //使用样式 
propertyGrid->MarkModifiedProperties(); //着重显示更改过的部分 
回调方法:属性框的修改需要手动添加AFX_WM_PROPERTY_CHANGED实现响应

afx_msg LRESULT OnPropertyChanged (WPARAM,LPARAM);
ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_CHANGED, OnPropertyChanged)
LRESULT CWorkspaceBar::OnPropertyChanged (WPARAM,LPARAM lParam)
{    CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam;
    //输入重定向   

     pProperty=pGroup11->GetSubItem(0) ;//获得子项的指针

     const COleVariant &strValue=pProperty->GetValue();//获得子项值

     CString strTmp =strValue.btstrVal;                    MessageBox( strTmp);   return 0;} 

posted @ 2016-11-10 10:31  fyk1Ex  阅读(169)  评论(0)    收藏  举报