如何让ShowWindow(SW_HIDE)隐藏了的窗口显示(在线急等)

sjzxyg 2002-06-20 12:40:33
我用Shell_NotifyIcon(NIM_ADD,&m_nid)在系统托盘处注册了一个图标,然后用ShowWindow(SW_HIDE)将窗口隐藏,添加了自定义消息,
LRESULT COpenDlg::Onnotify(WPARAM uID,LPARAM lEvent)
{
if(lEvent==WM_LBUTTONDBLCLK)
{
ShowWindow(SW_SHOW);
return 1L;
}
else
return 0L;
}
但是点击图标却没有反映。
我知道肯定是我的这个函数写错了
请问怎么才能点击图标重新显示窗口
谢谢!
...全文
674 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu_hl 2002-06-20
  • 打赏
  • 举报
回复
设断点调试。
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
上面几种方法我试了试,还是不行
是不是我的消息处理函数根本就没有执行
如何查看消息响应与否?
mooncat2000 2002-06-20
  • 打赏
  • 举报
回复
把SW_HIDE改成SW_SHOW
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
加了消息映射
yu_hl 2002-06-20
  • 打赏
  • 举报
回复
加入了消息映射吗?
ON_MESSAGE(..., Onnotify)
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
怎么知道消息有没有响应?
谢谢!
sammon 2002-06-20
  • 打赏
  • 举报
回复
在windowproc()函数中扑捉自定义消息
执行showwindows(sw_restrore);
suduan 2002-06-20
  • 打赏
  • 举报
回复
showwindows(sw_restrore);还有你的消息响应了吗?
andy_lau 2002-06-20
  • 打赏
  • 举报
回复
你没相应相应的消息
bugz 2002-06-20
  • 打赏
  • 举报
回复
ShowWindow(SW_MINIMIZE);
ShowWindow(SW_RESTORE);
这样比较好
bugz 2002-06-20
  • 打赏
  • 举报
回复
ShowWindow(SW_MINIMIZE);
ShowWindow(SW_RESTORE);
这样比较好
mrlp 2002-06-20
  • 打赏
  • 举报
回复
您的映射如下,类CMyDlg
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
...
ON_MESSAGE(WM_MY_NOTIFYICON,Onnotify)
END_MESSAGE_MAP

而函数却属另一个类,COpenDlg
LRESULT COpenDlg::Onnotify(WPARAM uID,LPARAM lEvent)

是笔误?
bugz 2002-06-20
  • 打赏
  • 举报
回复
LRESULT CTestDllDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if(message == WM_USER+13)
{
if(lParam == WM_RBUTTONDOWN && wParam == IDR_MAINFRAME)
{
ShowWindow(SW_SHOW);
return 0;
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
lxas 2002-06-20
  • 打赏
  • 举报
回复
WM_LBUTTONDBLCLK是相应鼠标左键双击。你双击试试!!!
还有,你贴出来的代码是ShowWindow(SW_SHOW);改成ShowWindow(SW_HIDE);试试。如果不行的话,可以在你的代码里面加入下面一行。MessageBox(_T("OK"));如果双击后弹出OK对话框证明已经正确响应了双击消息。问题处在ShowWindow(SW_SHOW);然后在想办法解决!
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
为什么消息没有响应呢?(痛苦。。。看来中午饭我是吃不下了)
问题出在哪里呢?。。。。
ych121 2002-06-20
  • 打赏
  • 举报
回复
将lEvent改为uID试一下看
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
我写在BEGIN_MESSAGE_MAP(CMyDlg, CDialog)后,CMyDlg为对话框类
MFC ClassWizard的消息中能找到我定义的消息
但是运行是消息没有响应
mrlp 2002-06-20
  • 打赏
  • 举报
回复
请仔细查查,在您加入ON_MESSAGE(..._)的cpp文件里,有几对
BEGIN_MESSAGE_MAP
END_MESSAGE_MAP
我犯过这样的错误:在基于对话框的程序里,对话框类的cpp文件里可能有不只一处消息映射,而我自己的消息映射写错了地方,当然不起作用。
当多个需要消息映射的类在同一文件中定义时,可能出现这种情况。
不知道您的问题是否与我的相似。
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
对话框程序
写在OnInitDialog()中
sjzxyg 2002-06-20
  • 打赏
  • 举报
回复
对话框程序
写在OnInitDialog()中
加载更多回复(7)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧