class CMyDlg : public CDialog
{
public:
CToolTipCtrl m_ToolTips;
...............
}; BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO: Add extra initialization here CButton *pButton;
pButton=(CButton *)GetDlgItem(IDC_BUTTON1);
m_ToolTips.Create(this);
m_ToolTips.AddTool(pButton,"This is a ToolTips text for this Button");
return TRUE; // return TRUE unless you set the focus to a control
}
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
AfxMessageBox("跪求你弹信息框吧!!!!!"); m_ToolTips.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}VC好蛋疼 为什么连个鼠标移动到控件上提示信息都没 哎~~ 这代码 我在EXE上测试没问题。搬到DLL窗体上就无效了 反复检查没问题。
然后调试。。在 PreTranslateMessage下断 一点断都没断到 在EXE上 一断就断到了。现在也加了个AfxMessageBox 也是不弹。。为什么 有什么方法可以代替PreTranslateMessage吗跪求大神调教。。注:是在DLL窗体上无效 DLL注入
解决方案 »
- 为什么playsound只能播放根目录下的声音文件,载入图片文件也只能是根目录下的
- 大连的软件公司90%都是垃圾!在大连做软件3年=在北京做1年
- c++primer第3版中对于operator+的疑问?
- 如何将别的程序窗口画面拷贝到当前程序窗口
- 一个关于MFC的新手问题
- “在共享DLL中使用MFC”改为“在静态库中使用MFC”后发生的问题。。。。
- 一个Socket执行shudown后为什么对他delete会出错?
- 各位大侠,怎么实现在视图上写一串字,然后可以用鼠标可以选中这串字进行更改???
- 菜鸟问题:请教用VC开发Oracle数据库的几个基本问题
- 关于 RGB565图像 运动检测的问题,简单的侦查出变化即可
- 【MFC求助】关于二进制文件读取并MD5加密的问题
- 【求助】关于TCP UDP通信问题
See Also Send Feedback
Call this member function to determine whether the given message is intended for a modeless dialog box; if it is, this function processes the message.
Return Value
Specifies whether the member function has processed the given message. It is nonzero if the message has been processed; otherwise 0. If the return is 0, call the CWnd::PreTranslateMessage member function of the base class to process the message. In an override of the CWnd::PreTranslateMessage member function the code looks like this :
AFX_MANAGE_STATE(AfxGetStaticModuleState());
pdlg=new CdlgDll();
pdlg->Create(IDD_DLG_MAIN);
pdlg->ShowWindow(TRUE);
对话框 自带 一个 TT
Enable 一下就可以了
你在说什么。。Enable 不是是设置控件是否可以点亮的吗。 我是要提示鼠标移动到控件提示信息
BOOL EnableTooltips(BOOL bEnable = TRUE);
对话框也是这样
pdlg=new CdlgDll();
pdlg->Create(IDD_DLG_MAIN); 创建的对话框 这个函数不响应
pdlg->ShowWindow(TRUE);
pdlg->Domodal(); 创建模态对话框就可以但我想要Create 创建的
pdlg=new CdlgDll();
pdlg->Create(IDD_DLG_MAIN); 模态创建的对话框 PreTranslateMessage 函数不响应
pdlg->ShowWindow(TRUE);
pdlg->Domodal(); 创建非模态对话框就可以但我想要Create 创建的
OnToolTipNotify
BOOL EnableTooltips(BOOL bEnable = TRUE);断点在OnToolTipNotify
pdlg->Create(IDD_DLG_MAIN); 非模态创建的对话框 PreTranslateMessage OnToolTipNotify函数不响应
pdlg->ShowWindow(TRUE);
pdlg=new CdlgDll();
pdlg->Domodal(); 模态创建的对话框 PreTranslateMessage OnToolTipNotify 才响应
pdlg->ShowWindow(TRUE);
pdlg->Create(IDD_DLG_MAIN); 创建对话框啊 到底怎么样才可以啊 晕死 2天了 都搞不懂
导出函数是什么?
pdlg=new CdlgDll(); pdlg->Create()这些语句放在哪里?
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); LPMSG lpMsg = (LPMSG) lParam;
if(AfxGetApp()->PreTranslateMessage(lpMsg))
{
lpMsg->message = WM_NULL;
lpMsg->lParam = 0L;
lpMsg->wParam = 0;
}
自己安装个钩子 监控鼠标移动的消息
.h
virtual BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
.cpp
BEGIN_MESSAGE_MAP(CChildDlg2, CDialog)
//{{AFX_MSG_MAP(CChildDlg2)
//}}AFX_MSG_MAP
ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnToolTipNotify)
END_MESSAGE_MAP()BOOL CChildDlg2::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
EnableToolTips();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}BOOL CChildDlg2::OnToolTipNotify(UINT id,NMHDR *pNMHDR,LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if(nID)
{
pTTT->hinst = AfxGetResourceHandle();
pTTT->lpszText = MAKEINTRESOURCE(nID);// "1=IDOK, 2=IDCENCEL"
return(TRUE);
}
}
return(FALSE);
}