如何制作一个对话框,使其像OICQ一样可以隐藏的对话框!!!

masterlee 2001-05-08 10:31:00
...全文
198 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
In355Hz 2001-05-09
  • 打赏
  • 举报
回复
有个方法可能比较简单,把你的窗口注册为AppBar:
函数:
WINSHELLAPI UINT APIENTRY SHAppBarMessage(
DWORD dwMessage,
PAPPBARDATA pData
);
先发送ABM_NEW消息把你的窗口注册为AppBar(要求窗口必须有WS_EX_TOOLWINDOW 属性,),然后发送ABM_SETAUTOHIDEBAR将注册的AppBar设为自动隐藏的。
你可以在MSDN中找到这篇文档:Application Desktop Toolbars
看看他以及ABM_ ,ABN_ 的一些消息就行了。
masterlee 2001-05-09
  • 打赏
  • 举报
回复
还有如何隐藏起来啊?
guostong 2001-05-09
  • 打赏
  • 举报
回复

void CDITDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rect;
GetWindowRect(&rect);
ClientToScreen(&point);
if (rect.PtInRect(point))
{
MoveWindow(rect.left,0,rect.Width(),m_iHeight,true);
SetCapture();
}else
{
MoveWindow(rect.left,4-m_iHeight,rect.Width(),m_iHeight,true);
ReleaseCapture();
}
CDialog::OnMouseMove(nFlags, point);
}
guostong 2001-05-09
  • 打赏
  • 举报
回复

void CDITDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rect;
GetWindowRect(&rect);
ClientToScreen(&point);
if (rect.PtInRect(point))
{
MoveWindow(rect.left,0,rect.Width(),m_iHeight,true);
SetCapture();
}else
{
TRACE("out \r\n");
// SetWindowPos(NULL,rect.left,rect.top,rect.Width(),5,SWP_SHOWWINDOW);
MoveWindow(rect.left,4-m_iHeight,rect.Width(),m_iHeight,true);
// SetCapture();
ReleaseCapture();
}
CDialog::OnMouseMove(nFlags, point);
}
SmartHeart 2001-05-09
  • 打赏
  • 举报
回复
care
masterlee 2001-05-09
  • 打赏
  • 举报
回复
具体一点了。
supperlxf 2001-05-09
  • 打赏
  • 举报
回复
SetWindowPos
flytiger1977 2001-05-08
  • 打赏
  • 举报
回复
同意,加个定时器,在某些事件下(如:鼠标不在窗口上时),就触发移动事件,不过一定要保留一点点边在外面,当鼠标移到窗口上时就可还原了。
luxes 2001-05-08
  • 打赏
  • 举报
回复
无非就是MoveWindow到屏幕外去罢了,但是注意留一点在屏幕内,同时截获鼠标移动的消息,把窗口慢慢(可以通过timer)移回来。
masterlee 2001-05-08
  • 打赏
  • 举报
回复
这个已经差不多了,不过,如何把多话框隐藏起来,而且只剩下一点,但鼠标到达时,动画弹出呢?
vcbacker 2001-05-08
  • 打赏
  • 举报
回复
一个例子,
http://202.112.105.179/vc/Dialog/TabDialog_demo.zip
不过和你的要求可能有差距。
masterlee 2001-05-08
  • 打赏
  • 举报
回复
上面几位老大,可否告知,那里有类似的代码,或例子,我想看一看。
sunwt 2001-05-08
  • 打赏
  • 举报
回复
不懂什么意思。
1。如果你要缩上去,用上述方法
2。如果你要隐藏对话框:
CYourDialog::OnMini()
{
ShowWindow(SW_HIDE);
}

16,548

社区成员

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

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

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