快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱乐和记怡情下载:MFC中给静态文本加上提示的做法



照样那句老话:纸上得来终觉浅,绝知此事要躬行。前天给同事办理了一个问题,他动态创建了一个静态控件,可是这个静态控件的ToolTip老是显示不出来。我提示和记娱乐和记怡情下载他在创建时要设置一下窗口风格。公然他在创建时加上SS_NOPREFIX就好了。

本日抽空把这个常识记录一下(这也算是我的一个习气了,无关乎技巧含量),上网搜了一下CToolTipCtrl类的用法,搜到一篇文章:

CToolTipCtrl 运器具体讲解

我测试了该文的做法,发明要与该文作者商议一下了。该文作者说:

ToolTip是 Win32中一个通用控件,MFC中为其天生了一个类CToolTipCtrl,总的说来其应用措施是较简单的,下面讲一下它的一样平常用法和高档用法。

一样平常用法步骤:

1.添加CToolTipCtrl成员变量 m_tt。

2.在父窗口中调用 EnableToolTips(TRUE);

3. 在窗口的OnCreate(或者其他适当的位置)中向T和记娱乐和记怡情下载oolTip中添加必要显示Tip的子窗口,并同时指定响应的显示字串 CToolTipCtrl::AddTool(pWnd,"string to display")。

4.重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用 m_tt.RelayEvent(pMsg)。

下面假设在窗口CWndYour中应用 CToolTipCtrl

然则我照该文的做法,移动鼠标到静态文本控件上提示并没出来。我感到精确的做法应该是设置窗口风格。详细是,假如你是拖来控件的做法,要把Notify的属性设为TRUE,详细如下图:

假如你是动态创建静态文本控件,必须给窗和记娱乐和记怡情下载口风格添加SS_NOTIFY(其它窗口我也预计也类似),详细是:

class CAbout和记娱乐和记怡情下载Dlg : public CDialog

{

public:

CAboutDlg();

// 对话框数据

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持

// 实现

protected:

DECLARE_MESSAGE_MAP()

public:

virtual BOOL OnInitDialog();

private:

CToolTipCtrl m_tt;

CStatic m_StaticText;

public:

virtual BOOL PreTranslateMessage(MSG* pMsg);

};

BOOL CAboutDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// TODO:在此添加额外的初始化

m_StaticText.Create(_T("my static"), WS_CHILD|WS_VISIBLE|WS_BORDER|SS_NOTIFY,

CRect(10,10,150,50),this);

m_tt.Create(this);

m_tt.Activate(TRUE);

m_tt.AddTool(&m_StaticText,_T("这是一个静态文本!"));//添加

return TRUE;// return TRUE unless you set the focus to a control

// 非常: OCX 属性页应返回FALSE

}

BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)

{

// TODO: 在此添加专用代码和/或调用基类

if (NULL != m_tt.GetSafeHwnd())

m_tt.RelayEvent(pMsg);

return CDialog::PreTranslate和记娱乐和记怡情下载Message(pMsg);

}

您可能还会对下面的文章感兴趣: