内容发布更新时间 : 2024/12/23 5:54:49星期一 下面是文章的全部内容请认真阅读。
一:syslink controls超链接控件
系统环境:Windows 7
软件环境:Visual Studio 2008 SP1
本次目的:实现Syslink Control超链接的效果
我们知道在VS2008中,VC里面多了syslink controls,command 、 split buttons 和 network address controls。对于Syslink Control的使用,将在此介绍。目前该控件支持带HREF 和 ID 的锚定标记,MSDN如下说明:
An HREF may be of any protocol, such as http, ftp, mailto, and so on. An ID is an optional name unique within a SysLink control and associated with an individual link. Links are also assigned a zero-based index according to their position within the string. This index is used to access a link.
首先:建立一个对话框工程,添加一个Syslink Control 控件;
然后,为控件添加CLinkCtrl 类的变量,这里名称为m_Link 。在对话框初始化函数OnInitDialog() 里面添加以下代码:
[cpp] view plaincopy
1. m_Link.SetWindowText(_T(\欢迎光临
上面代码中的格式要注意,记得转义字符的使用。接着,为控件添加 NM_CLICK 事件,在事件函数里面添加如下:
[cpp] view plaincopy
1. void CTestDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult) 2. {
3. // TODO: 在此添加控件通知处理程序代码 4. PNMLINK pNMLink = (PNMLINK) pNMHDR;
5. if (wcscmp(pNMLink->item.szUrl, _T(\)) ==
0)
6. { //pNMLink->item.szUrl代表你点击的那个超链接,控件上可以显示多个超链接 7. ShellExecuteW(NULL, L\, pNMLink->item.szUrl, NULL, NULL, SW_SHO
WNORMAL); //主要执行语句 8. } 9. *pResult = 0; 10. }
效果如下:
二:Split Button
VS2008中可以看到MFC有一个叫Split Button的控件,要想看它的效果,瞧下QQ那聊天窗口的\发送\消息记录\这两个按钮就知道了.实际上就是还有点像Combo Box了.不过它的实现应该是button加menu.所以它的消息处理可以分开成button的处理和menu的处理 往dialog上拖一个split button后,再给它绑定一个变量. CSplitButtonm_sbSend;
因为说了split button实际上是button跟menu的组合.所以你得整个menu先.不是什么特殊的菜单,就是主页面常用的那种菜单.
m_split.SetDropDownMenu(IDR_MENU1,0); //添加split button的下拉菜单.第一个参数就是菜单的资源ID,第二个参数就是子项索引,就是菜单根项从左之右数过去了.我们这里只能用到它的一个子菜单.
消息处理
split button中按钮部分的消息处理跟一般按钮一样.
void CMFCControlDlg::OnBnClickedSplit1() 处理正常按钮消息 {
AfxMessageBox(_T(\}
下拉菜单的处理
split button中下拉菜单的处理也跟一般菜单类似 ON_COMMAND(ID_Split_Menu1, SendMsg)
voidCMFCControlDlg::SendMsg() {
AfxMessageBox(_T(\}
三:CMFCPropertyGridCtrl的简单教程
用vs2010建立一个基于对话框的MFC工程,拖一个CMFCPropertyGridCtrl进去,大小调整好。(注:首先采用的是静态创建的办法,大部分需要的属性在对话框编辑界面就可以编辑。)然后为该控件更改ID为IDC_MFCPROPERTYGRID_TEST,并且使用ClassWizard为控件添加一个变量m_propertyGrid。 接下来更改控件的一些属性。
其实这不就是个CMFCPropertyGridCtrl控件么。Border神马的基础东西就不说了。 \指的是下面的描述部分有几行。 \表示是否启动下面的描述功能 \表示是否启动表头
\表示是否着重显示更改项