如何实现类似东方快车的显示条

ren20 2001-05-07 02:38:00
运行后,在屏幕的最上方有一个显示栏,显示特定的内容。
...全文
1895 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
tvrcjtg 2001-05-10
  • 打赏
  • 举报
回复
用SDK做吧
pgfun 2001-05-10
  • 打赏
  • 举报
回复
不太清楚你的意思.
你把窗口随时置于最顶层不就可以了么?
如果你不想在平时显示那一个象素高度的小条的话,倒是可以考虑楼上仁兄的用定时器监测鼠标位置的方法.但我想那应该不是个好方法.你看windows的任务条在自动隐藏时不也露着那么一小条么?
ren20 2001-05-10
  • 打赏
  • 举报
回复
是不是还要加上响应后, 让对话框位于桌面的最上方?

好象用个什么函数? 如果鼠标在对话框上,就位于所以窗口最上方,需要吗?
Pasp 2001-05-09
  • 打赏
  • 举报
回复
我找到C++Builder的源代码,可以实现你要不要?
lkjx 2001-05-08
  • 打赏
  • 举报
回复
gz
pgfun 2001-05-08
  • 打赏
  • 举报
回复
你没有releasecapture
guostong 2001-05-08
  • 打赏
  • 举报
回复
按照各位高手的指点,本人做了一个,
原代码如下:
void CDitDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rect;
GetWindowRect(&rect);
ClientToScreen(&point);
if (rect.PtInRect(point))
{
SetWindowPos(NULL,rect.left,rect.top,rect.Width(),m_iHeight,SWP_SHOWWINDOW);
SetCapture();
}else
{
SetWindowPos(NULL,rect.left,rect.top,rect.Width(),7,SWP_SHOWWINDOW);
SetCapture();
}
CDialog::OnMouseMove(nFlags, point);
}
对话框可以收缩,但是无法点中鼠标
supperlxf 2001-05-07
  • 打赏
  • 举报
回复
to lzhljylg
InvalidateRect(hWnd,0,1);使窗口无效先
再UpdateWindow();
supperlxf 2001-05-07
  • 打赏
  • 举报
回复
to pgfun
窗口可自动接收为wm_mousemove消息啊,为何还要setcapture?
supperlxf 2001-05-07
  • 打赏
  • 举报
回复
先InvalidateRect(hWnd,0,1);了吗?
lzhljylg 2001-05-07
  • 打赏
  • 举报
回复
to supperlxf(嘿嘿):
不好意思,我试了试在CMainFrame::OnCreate()的后部加入
UpdateWindow();
可还是不行
pgfun 2001-05-07
  • 打赏
  • 举报
回复
首先创建一个置于最顶层的对话筐窗口,将其宽度设为你想要的,高度设为1
处理此对话筐的mousemove消息,检验其中传入的point值是否在你的窗口内,如果是,则使用this->SetCapture()将鼠标捕捉设到你的窗口上,将窗口变大.如果不是,调用::ReleaseCapture()释放之.将窗口又变小.
ren20 2001-05-07
  • 打赏
  • 举报
回复
pgfun() :
请说详细点,非常感谢
ren20 2001-05-07
  • 打赏
  • 举报
回复
东方快车的栏是不是对话框的变形? 还是其他的东西?
pgfun 2001-05-07
  • 打赏
  • 举报
回复
不用这样吧?我看东方快车再屏幕右上角有一个高度为1象素的窗口.
这样,只需在窗口中检验mousemove消息,再设置mouse capture即可.
ren20 2001-05-07
  • 打赏
  • 举报
回复
谢谢 supperlxf,

那如何拖动呢?
supperlxf 2001-05-07
  • 打赏
  • 举报
回复
拖动就更好办了,一个SendMessage(windowhwnd,WM_NCLBUTTONDOWN, HTCAPTION ,cpos)就搞定了
兄弟啊,为什么到处都是你的问题,最近在搞什么东东啊
supperlxf 2001-05-07
  • 打赏
  • 举报
回复
SetWindowPos 后面的 x,y 可以为负数(知道是什么意思了吗,就是说它可以移到屏幕外面去啊)然后用settime(x00),没隔几百微秒 GetCursorPos 一下鼠标的坐标,发现它的y值等于0
就。。。。。。。。
ren20 2001-05-07
  • 打赏
  • 举报
回复
最好可以被鼠标拖动的,比如拖动到左上角, 或者右上角
ren20 2001-05-07
  • 打赏
  • 举报
回复
可是那种鼠标移到屏幕最上方,就出现,离开就消失,是怎么实现的?

象东方快车。谢谢

再加30分。
加载更多回复(14)

16,548

社区成员

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

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

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