主标题:网站如何添加浮动窗口(网站悬浮窗口怎么设置)

副标题:网站如何添加浮动窗口(网站悬浮窗口怎么设置)

发布于:2025-01-29 10:01:00 类别:职场经验 阅读:83

当前网址:http://www.hzqyd.com/ckzx/zcjy/52391.html

网站如何添加浮动窗口,网站悬浮窗口怎么设置

内容导航:

  • 如何在网站首页中增加一个浮动窗口
  • oppor9桌面悬浮窗怎么开启
  • 如何给浮动窗口添加按钮
  • 如何添加可链接的浮动窗口
  • 一、如何在网站首页中增加一个浮动窗口

    如题,我想要在自己做的网站中添加1个浮动窗口。我的浮动窗口里面需要添加的是1个。而且我希望做出来的窗口是可以最小化和还原的,这样就在不需要用到的时候不会占用空间。

    二、oppor9桌面悬浮窗怎么开启

    这是桌面悬浮球功能。
    拖动加速球到桌面中间位置,再松开即可关闭后台运行程序。
    可通过以下方式打开或者关闭桌面加速球:1、ColorOS 3.0系统,设置–手机管家–桌面加速球;2、ColorOS 2.1系统,安全中心–设置–
    桌面加速球。
    部分机型没有加速球,可以通过点击屏幕左下角按键(长按home键)在任务管理界面,一键清理即可关闭正在运行的程序。
    具体操作步骤如下:1、点击手机桌面的手机管家进入–权限隐私。
    2、点击悬浮窗管理按钮,进入之后对相应的程序进行相关设置即可。
    在手机设置中选择手机管家

    三、如何给浮动窗口添加按钮

    新的MFC中添加了许多新的特性, 在VS2008上只需要安装SP1即可, VS2010则直接含有这部分的类.
    其中比较有用的一个就是CDockablePan类, 该类可以实现类似于VisualStudio中的悬浮窗口, 比如属性窗口, 输出窗口等.
    今天突然发现了一个问题, 就是在这种DockablePane中添加CButton对象时, 竟然这些按钮都是不可用的, 为此跟了许多的代码来搞定这个问题.
    当然了, 我的解决方法很土很恶心, 完全是治标不治本的, 应付一下需求而已…
    一. 先说原因
    1. 首先说下类的结构:
    继承关系是CDockablePane –> CBasePane –> CWnd
    2. 再说说原因
    (1). 在CBasePane中有一个函数OnIdleUpdateCmdUI, 其原型为:
    afx_msg LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM);
    该函数用来在idle的时刻更新一些UI上的东西, 这里说的”空闲”是指没有需要处理的消息.
    (2). 该函数实际上是在内部调用了OnUpdateCmdUI()函数, 该函数是定义在CBasePane类中的虚函数, 原型为:
    virtual void OnUpdateCmdUI(CFrameWnd pTarget, BOOL bDisableIfNoHndler);
    该函数的参数第二个bool类型参数表示当前控件如果没有消息处理函数是否需要被禁用bDisableIfNoHndler, 在上面所说的这个过程中,
    该值为true, 也就是说: 如果一个button没有响应update_command_ui消息的handler, 那么该button会被禁用.
    (3). 该函数OnUpdateCmdUI()是在CDockablePane中被重写了的,
    其内部调用了CWnd类的CWnd::UpdateDialogControls(), 从名字上也可以看出, 该函数的作用是更新对话框中的控件
    (4). 该函数不是虚函数, 其函数定义在CWnd类中, 其函数原型为:
    void CWnd::UpdateDialogControls(CCmdTarget
    pTarget, BOOL bDisableIfNoHndler)
    在该函数内部, 截取其中几段代码为:
    // 1. 这段代码用来检查该控件自身是否含有响应update_command_ui的响应函数,
    而用的消息是WM_COMMAND+WM_REFLECT_BASE
    // check for reflect handlers in the child window
    CWnd pWnd = CWnd::FromHandlePermanent(hWndChild);
    if (pWnd != NULL)
    {
    // call it directly to disable any routing
    if (pWnd->CWnd::OnCmdMsg(0, MAKELONG(0xffff,
    WM_COMMAND+WM_REFLECT_BASE), &state;, NULL))
    continue;
    }
    在MFC中, 如果需要为控件设置该处理函数, 有三个宏可以设置该WM_COMMAND+WM_REFLECT_BASE消息的处理函数, 分别是:
    ON_CONTROL_REFLECT, ON_CONTROL_REFLECT_EX和ON_UPDATE_COMMAND_UI_REFLECT
    // 2. 如果该控件的父窗口也可以处理该update_command_ui消息, 那么也可以
    // check for handlers in the parent window
    if (CWnd::OnCmdMsg((UINT)state.m_nID, CN_UPDATE_COMMAND_UI, &state;, NULL))
    continue;
    但是如果万一没有人可以处理该消息, 那么, 就是
    // determine whether to disable when no handler exists
    BOOL bDisableTemp = bDisableIfNoHndler;
    if (bDisableTemp)
    {
    if ((ge(WM_GETDLGCODE) & DLGC_BUTTON) == 0)
    {
    // non-button controls don’t get automagically disabled
    bDisableTemp = FALSE;
    }
    else
    {
    // only certain button controls get automagically disabled
    UINT nStyle = (UINT)(() & 0x0F);
    if (nStyle == (UINT)BS_AUTOCHECKBOX ||
    nStyle == (UINT)BS_AUTO3STATE ||
    nStyle == (UINT)BS_GROUPBOX ||
    nStyle == (UINT)BS_AUTORADIOBUTTON)
    {
    bDisableTemp = FALSE;
    }
    }
    }
    也就是说, 如果是按钮, 那么就要被禁用, 其它好像也还有几种, 也是需要被禁用的.
    //3. 在这步以后, 要调用CCmdUI的DoUpdate()函数, 该函数原型为:
    BOOL DoUpdate(CCmdTarget
    pTarget, BOOL bDisableIfNoHndler);
    这个函数里面搞不清楚是怎么回事, 但其中调用了CCmdUI::Enable()函数, 在该函数中使得按钮被禁用了
    二. 接下来说解决办法
    1. 最粗鲁的方法就是直接改变原来的机制
    由于在CBasePane中含有OnUpdateCmdUI(CFrameWnd _pTarget, BOOL bDisableIfNoHndler)函数,
    其第二个参数意思就是: 如果该控件没有处理函数, 那么是否需要禁用. 默认值为true, 所以只需要重载该函数就差不多了.
    但是我们肯定要重载的是CDockablePane中的该函数, 因为在CBasePane中该函数什么也不做, 重载方法很简单,
    从CDockablePane中抄写一下就行了:
    void CDockablePane_1::OnUpdateCmdUI(class CFrameWnd _pTarget, int
    bDisableIfNoHndler)
    {
    //UpdateDialogControls(pTarget, bDisableIfNoHndler);
    UpdateDialogControls(pTarget, FALSE); //就是这儿了…
    CWnd _pFocus = GetFocus();
    BOOL bActiveOld = m_bActive;
    m_bActive = (pFocus->GetSafeHwnd() != NULL && (IsChild(pFocus) ||
    pFocus->GetSafeHwnd() == GetSafeHwnd()));
    if (m_bActive != bActiveOld)
    {
    SendMessage(WM_NCPAINT);
    }
    }
    但是这改变了所有控件的系统默认处理机制, 故不推荐啊!!!
    2. 让按钮自己来处理on_update_cmd消息
    由于按钮是没有对该消息做出处理才导致被禁用的(见原因分析), 所以我们可以自定义一个CMsgButton, 让类中含有该消息的处理部分就行了.如下:
    // 头文件
    class CMsgButton : public CButton
    {
    // 其它代码
    void OnUpdateUI(CCmdUI _cmdUI);
    };
    // cpp文件
    BEGIN_MESSAGE_MAP(CMsgButton, CButton)
    ON_UPDATE_COMMAND_UI_REFLECT(OnUpdateUI)
    END_MESSAGE_MAP()
    void CMsgButton::OnUpdateUI(CCmdUI _cmdUI) {} // 有该函数就行了
    3. 让父窗口处理
    按钮的on_update_cmd之类的消息, 也可以由其父窗口来响应(见原因分析), 以下的代码均在CDockablePane派生类中出现:
    ON_UPDATE_COMMAND_UI(1988, OnUpdateCommandUI) // 其中的1988是按钮的id, 需要让哪个按钮可用,
    这儿就应该出现这个id
    // 至少这个函数, 还是有就行, 不一定要有内容
    void COutputWnd::OnUpdateCommandUI(CCmdUI _cmdUI) {}
    4. 其它方法…
    // todo

    四、如何添加可链接的浮动窗口

    答:友情链接:控制面板-个人首页维护-自定义链接-友情链接-新增-(添加链接)-保存(操作栏)-保存

    二维码

    添加微信,快速了解成人高考

    声明:由于考试政策等各方面情况的不断调整与变化,本网站所提供的考试信息仅供参考,请以权威部门公布的正式信息为准。
    本站所有内容来源于互联网。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 514443065@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

    标签:

    1、您目前的学历层次:

    小学及以下

    初中

    高中

    中专

    大专

    2、你接受的拿证时长:

    1年以内越快越好

    1年到2年

    2年到3年

    3年及以上

    3、你为什么提升学历:

    找工作

    考公务员

    办工作居住证

    考证书评职称

    4、您更偏向于哪种取证方式:

    全程无忧

    在家自学

    学校听课

    辅导教学

    其他

    *您的姓名:

    *手机号码:

    *报考城市:

    相关文章

    • dede会员中心如何调用评论(会员中心登录)

      dede会员中心如何调用评论(会员中心登录)

      「dede会员中心仿制」dede会员中心如何调用评论,会员中心登录内容导航:dede怎么调用留言板腾讯嬗变削藩后剑指何方会员中心模板详细页如何调用自定义字段dede 评论怎么调用一、dede怎么调用留言板有三种方法可以实现调用,分别如下: 第一...

    • 如何提升网站加载速度(怎么提高网站下载速度)

      如何提升网站加载速度(怎么提高网站下载速度)

      「提升网页加载速度」如何提升网站加载速度,怎么提高网站下载速度内容导航:如何提升网站的打开速度对于加快网页的加载速度都有哪些优化的方法网站建设过程中是如何提高网站加载速度如何通过预加载器提升网页加载速度 一、如何提升网站的...

    • 「阿里云独立密码是什么意思」阿里云盘密码登录怎么设置密码

      「阿里云独立密码是什么意思」阿里云盘密码登录怎么设置密码

      「阿里云的密码」阿里云独立密码是什么意思,阿里云账号密码内容导航:阿里云账号登陆密码和服务器的密码是一样的吗什么是独立密码阿里云盘密码登录怎么设置密码知道 阿里云的 动态域名账号、密码是什么意思吗一、阿里云账号登陆密码...

    • 3张照片如何排版好看(五张照片怎么排版好看)

      3张照片如何排版好看(五张照片怎么排版好看)

      「3张照片的排版」3张照片如何排版好看,五张照片怎么排版好看内容导航:三张照片怎么排版好看怎样把三张图片放在一张A4纸上排版的好看了3张7寸8张8寸照片墙怎么排书报怎样排版才好看一、三张照片怎么排版好看三张照片你可以把它合成一...

    • 个人如何网站备案(个人网址备案)

      个人如何网站备案(个人网址备案)

      「个人网站备案从哪里备案」个人如何网站备案,个人网址备案内容导航:个人服务器搭建网站如何进行备案个人网站怎么备案网站备案什么样的网站可以备案一、个人服务器搭建网站如何进行备案备案时需要提交网站和域名信息,对应管局会对您的网站和域...

    • 「企业备案有什么用途」特殊用途化妆备案怎么办理

      「企业备案有什么用途」特殊用途化妆备案怎么办理

      「特殊类化妆品备案要多久」企业备案有什么用途,备案是干什么用的内容导航:备案是什么作用进行企业投资项目备案有什么作用吗会有类似于税收优惠之类的好处企业上的ICP备案号是什么呀特殊用途化妆备案怎么办理一、备案是什么作用备案:是指向主...

    • 什么浏览器不支持js(什么浏览器不支持wav)

      什么浏览器不支持js(什么浏览器不支持wav)

      「哪个版本的浏览器不支持媒体查询」什么浏览器不支持js,什么浏览器不支持wav内容导航:IE浏览器不兼容JavaScript我的浏览器不支持JS脚本是什么意思如何解决Win10系统IE浏览器不支持js为什么我的google浏览器不能选择日期打开流程一、IE浏览器不兼容Jav...

    • 网站首页布局设计用什么(网站布局设计的步骤)

      网站首页布局设计用什么(网站布局设计的步骤)

      「网站主页布局结构」网站首页布局设计用什么,网站布局设计的步骤内容导航:网页布局设计有哪些类型网站首页设计的页面应该包括哪些内容网站首页的设计和布局怎么做网页布局都有哪种一般都用什么布局一、网页布局设计有哪些类型1、拐角型...

    • ps如何制作烟雾效果(ps怎样做出烟雾的效果)

      ps如何制作烟雾效果(ps怎样做出烟雾的效果)

      「ps如何做出烟雾特效」ps如何制作烟雾效果,ps怎样做出烟雾的效果内容导航:ps如何制作唯美的烟雾效果图ps怎样制作烟的效果photoshop如何制作这种实物与水墨结合的烟雾抽丝效果ps里怎么做烟雾效果一、ps如何制作唯美的烟雾效果图1、启动pho...

    • 如何开通个人博客(如何开通博客)

      如何开通个人博客(如何开通博客)

      「如何开通博客?」如何开通个人博客,如何开通博客内容导航:如何开通个人博客怎样开通和使用自己的博客啊如何开通我的博客如何申请一个个人博客一、如何开通个人博客具体操作步骤如下:以新浪博客为例:1、首先打开百度,点击搜索进入...

    放松一下

    搞笑逗比却说的句句在理的个性签名

    不听老人言,开心好几年。

    春分了,该分的可以分了。

    以前我有爱,现在只喜欢钱。

    遇见你之前我只爱钱。

    答应我,喜欢我,不要客气。

    小猪佩奇身上纹,一看就是养猪人。

    表白有用的话,哪来的那么多强女干犯。

    对于丑人,细看是一种残忍。

    乖,和我一起修仙,无情无欲。

    游戏真是增加感情的好东西。

    老一代的玩心机,小一代的玩吃鸡。

    今天不预报天气,欲抱你。

    今天不蹦迪,明天变辣鸡。

    我走过最长的路,就是你的套路。

    我们不熟,但你可以用钱套近乎。

    不听老人言,开心好几天。

    不是单身没意思,是没钱的单身好没意思。

    都说钱是王八蛋,可他长得真好看。

    沉稳做人,吃胖一点,又沉又稳。

    生活挺难的,还好我可爱。

    幸亏长得丑,没经历过各位的爱恨情仇。

    为钱而活,越多我越快乐。

    有福同享,有难你扛。

    不是我俗,有钱真的很有安全感。

    一见钟情不就是一见钟脸吗?

    少女做累了吧,想不想做寡妇。

    懒驴上磨屎尿多。

    什么都是假的,只有穷是真的。

    面子给你了我的脸往哪放。

    意淫可以丰富,生活必須简单。

    你凭什么说我胖了,你请我吃过了什么。

    你胸那么大应该有两百斤吧?

    小猪佩琪,我配你。

    跟你说了多少遍了,抱怨没用,抱我。

    佩奇牌手电筒,照亮你的丑。

    你比巧克力甜多了。

    苦海无涯,你要不要上我的破船。

    好好活下去,每天都有新打擊。

    你已经弄乱了我的心,什么时候来弄乱我的床。

    评论 (0)

    上一页 下一页

    我要点评

    您还未登录,无法发表评论!
    在线测评

    电话咨询
    15992004801 添加微信