就是一个小小的功能实现而已,主要是想把一个静态控件设置为一个超链接,记录下其中涉及的一些知识点
主要是需要自定义一个static的派生类,然后在消息映射表里增加鼠标点击事件映射,如下
BEGIN_MESSAGE_MAP(Myhylink, CStatic)
ON_CONTROL_REFLECT(STN_CLICKED, &Myhylink::OnStnClicked)
END_MESSAGE_MAP()
ShellExecute
ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。
ShellExecute(hWnd: HWND; {指定父窗口句柄}Operation: PChar; {指定动作, 譬如: open、print、edit、explore、find}FileName: PChar; {指定要打开的文件或程序}Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}Directory: PChar; {缺省目录}ShowCmd: Integer {打开选项}): HINST;
这里面静态控件点击事件响应函数里的实现的核心就是这个函数
HINSTANCE result = ShellExecute(NULL, _T("open"), “http://www.baidu.com”, NULL,NULL, showcmd);
CToolTipCtrl
用来设置提示文字的控件,当鼠标移动到指定控件后,便会显示一个提示文字
ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl
一般用法步骤:
1. 添加CToolTipCtrl成员变量 m_tt。
2. 在父窗口中调用EnableToolTips(TRUE);
3. 在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串 CToolTipCtrl::AddTool(pWnd, “这是提示文字”, rect, TOOLTIP_ID);
4. 重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用 m_tt.RelayEvent(pMsg)。
一般用法步骤:
1. 添加CToolTipCtrl成员变量 m_tt。
2. 在父窗口中调用EnableToolTips(TRUE);
3. 在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串 CToolTipCtrl::AddTool(pWnd, “这是提示文字”, rect, TOOLTIP_ID);
4. 重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用 m_tt.RelayEvent(pMsg)。