在VS 2008里MFC多了4种控件,分别是
split buttons ,command button , syslink controls和 network address controls.
split button前一篇博客已经讲了(主是普通的button和menu组合产生的控件),现在讲下command button , syslink controls
command button
这个名字取得挺忽悠人.其实该控件没太多新东西,就在原有的Button上加了一点新特性.仍然属于button.
它用起来不同于一般button的地方主要是3个方面.
1.除了button上面的caption显示的文字外还多了个note文字,相当起于进一步解释作用的文字,并是用小号的字显示出来.
2.可以在button前面显示一个icon图标,默认是指向右边的箭头
3.鼠标没放过去之前不像个button,像个static text控件一样的文本信息.鼠标移上去后才变得像button.
除了上面说的之外其他操作跟一般button一样.
所以主要来看下怎么设置note,和icon
CButton* pBtn = (CButton*)GetDlgItem(IDC_COMMAND1);
pBtn->SetNote(_T("something to description")); //设置note的内容
pBtn->SetIcon(m_hIcon); //设置icon,当然也可以使用默认的icon.
syslink controls
这个控件实际上就像html中的超链接一样.你点下可以链接到一个网页上去.
拖控件到页面上,并绑定一个变量
CLinkCtrl v_linkCtrl;
DDX_Control(pDX, IDC_SYSLINK1, v_linkCtrl);
//这里设置链接上面显示的内容要注意.里面的内容全部是按照标准的html中href的用法写的.写错了自然链接不了的.可以去瞧下html里面的href属性是怎/么设置的.另外要注意的是字符串中双引号的处理(记得加个转义符)
v_linkCtrl.SetWindowTextW(_T("<a href="http://blog.csdn.net/weiwenhp">weiwenhp博客</a>"));
消息处理
ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, OnNMClickSyslink1)
void CMFCControlDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
{
PNMLINK pNMLink = (PNMLINK) pNMHDR;
ShellExecuteW(NULL, L"open", pNMLink->item.szUrl, NULL, NULL, SW_SHOWNORMAL); //在浏览器中打开
*pResult = 0;
}