精华内容
下载资源
问答
  • Qt在win10自定义标题栏,应用主题颜色到标题栏先看效果关键点QtWin注册表获取是否应用了颜色到标题栏代码头文件:captionwidget.h源文件:captionwidget.cppmain.cpp其它功能最小化、最大化/还原、关闭按钮窗口拖动...

    前言

    Qt自定义标题栏的资料很多了,但是百度来github去,没找到应用win10的主题颜色到标题栏,就自己折腾了一下。弄了个Demo。没什么技术含量,献丑了。

    先看效果

    顺手绘制了按钮
    在这里插入图片描述
    在这里插入图片描述

    设置应用颜色到标题栏

    截图中实现了标题栏颜色和拖动改变窗口位置。

    关键点

    QtWin

    在.pro文件中加入

    QT   += winextras
    

    就可以使用QtWin命名空间中的API。这里我们使用

    QColor QtWin::realColorizationColor()
    

    根据文档描述:
    在这里插入图片描述
    这玩意儿返回的是带有Alpha的标题栏颜色。OK这样就是真实的颜色了。另外一个函数:

    QColor QtWin::colorizationColor(bool *opaqueBlend = Q_NULLPTR)
    

    返回的颜色有色差。

    注册表获取是否应用了颜色到标题栏

    这个东西好像不是公开的,经过我一番折腾,发现了在注册表的这个位置:

    HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM
    

    的这个key对应了上面我们开启的“应用颜色到标题栏和窗口边框”
    在这里插入图片描述
    有了这两个东西就好办了,就算是热更改,只需要在需要显示颜色的窗口的绘制事件中绘制上这个颜色就搞定了。

    代码

    头文件:captionwidget.h

    // captionwidget.h
    #ifndef CAPTIONWIDGET_H
    #define CAPTIONWIDGET_H
    
    #include <QWidget>
    
    #ifdef Q_OS_WIN
    class CaptionWidget : public QWidget
    {
        Q_OBJECT
    public:
        explicit CaptionWidget(QWidget *parent = 0);
    
        bool event(QEvent *e) override;
    signals:
        void btnMinClicked();
        void btnMaxNormalClicked();
        void btnCloseClicked();
        void DwmCompsitionChanged();
    
    protected:
        // QWidget interface
        bool nativeEvent(const QByteArray &eventType, void *message, long *result) override;
        void paintEvent(QPaintEvent *event) override;
        void mouseMoveEvent(QMouseEvent *event) override;
        void mousePressEvent(QMouseEvent *event) override;
        void mouseReleaseEvent(QMouseEvent *event) override;
        void mouseDoubleClickEvent(QMouseEvent *event) override;
        void leaveEvent(QEvent *event) override;
    
    private:
        enum RectType{
            Rect_Other = -1,
            Rect_Mini,
            Rect_NormalMax,
            Rect_Close,
        };
    
        enum IconType{
            Icon_Mini,
            Icon_Max,
            Icon_Restore,
            Icon_Close,
        };
    
        bool mini_hover_;
        bool max_hover_;
        bool close_hover_;
    
        void setTopLevelWidget();
    
        QRectF getRect(RectType type);
        QPixmap getPixmap(IconType type,const QColor &color);
        QColor getIconColor(bool isClose = false);
        int itemAt(const QPoint &pos);
    
        static QColor getForgroundColor(const QColor &backgroundColor);
    
        /// \brief windows8以上版本,获取是否将主题颜色应用到标题栏和边框
        /// \return
        ///
        static bool dwmColorPrevalence();
    };
    #else
    class CaptionWidget : public QWidget
    {
        Q_OBJECT
    public:
        CaptionWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
            : QWidget(parent, f)
        {
        }
    };
    #endif // Q_OS_WIN
    
    #endif // CAPTIONWIDGET_H
    
    

    源文件:captionwidget.cpp

    // captionwidget.cpp
    #include "captionwidget.h"
    #include <QSettings>
    #include <QtGlobal>
    
    #ifdef Q_OS_WIN
    #include <QPaintEvent>
    #include <QMouseEvent>
    #include <QHelpEvent>
    #include <QPainter>
    #include <QtDebug>
    #include <QToolTip>
    #include <QtWin>
    #include <QToolTip>
    #include <QStyle>
    
    #include <Windows.h>
    #pragma comment(lib, "User32.lib")
    
    CaptionWidget::CaptionWidget(QWidget *parent)
        : QWidget(parent)
        , mini_hover_(false)
        , max_hover_(false)
        , close_hover_(false)
    {
        setMouseTracking(true);
    
        setTopLevelWidget();
    }
    
    void CaptionWidget::setTopLevelWidget()
    {
        auto w = this->window();
        connect(this, &CaptionWidget::btnMinClicked, w, &QWidget::showMinimized);
        connect(this, &CaptionWidget::btnMaxNormalClicked, w, [=](){
            auto state = w->windowState();
            if(state.testFlag(Qt::WindowMaximized)){
                w->showNormal();
            }else if(state.testFlag(Qt::WindowNoState)){
                w->showMaximized();
            }
    
        });
        connect(this, &CaptionWidget::btnCloseClicked, w, &QWidget::close);
    }
    
    /// QWidget在鼠标移动后停留的短暂时间内,会触发一次QEvent::ToolTip
    /// 如果自绘制的按钮,可以在event中显示tooltip
    bool CaptionWidget::event(QEvent *e)
    {
        if (e->type() == QEvent::ToolTip) {
            QHelpEvent *helpEvent = static_cast<QHelpEvent *>(e);
            int index = itemAt(helpEvent->pos());
            if (index != -1) {
                QString str;
                switch (index) {
                case Rect_Mini:
                    str = tr("minimize");
                    break;
                case Rect_NormalMax:
    
                    str = this->window()->isMaximized()
                            ? tr("restore")
                            : tr("maximize");
                    break;
                case Rect_Close:
                    str = tr("close");
                    break;
                default:
                    Q_UNREACHABLE();
                }
                QToolTip::showText(helpEvent->globalPos(), str);
            } else {
                QToolTip::hideText();
                e->ignore();
            }
    
            return true;
        }
        return QWidget::event(e);
    }
    
    bool CaptionWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)
    {
        //Workaround for known bug -> check Qt forum : https://forum.qt.io/topic/93141/qtablewidget-itemselectionchanged/13
        #if (QT_VERSION == QT_VERSION_CHECK(5, 11, 1))
        MSG* msg = *reinterpret_cast<MSG**>(message);
        #else
        MSG* msg = reinterpret_cast<MSG*>(message);
        #endif
    
        switch (msg->message)
        {
        case WM_DWMCOLORIZATIONCOLORCHANGED:
        {
            // notify dwm composition changed
            emit DwmCompsitionChanged();
            return false;
        }
        default:
            return QWidget::nativeEvent(eventType, message, result);
        }
    }
    
    void CaptionWidget::paintEvent(QPaintEvent *event)
    {
        QWidget::paintEvent(event);
    
        if( this->window()->isFullScreen()){
            return QWidget::paintEvent(event);
        }
    
        QRectF rectMini = getRect(Rect_Mini);
        QRectF rectMaxNormal = getRect(Rect_NormalMax);
        QRectF rectClose = getRect(Rect_Close);
    
        QPainter p(this);
        p.save();
        // draw background
    
        int height = this->style()->pixelMetric(QStyle::PM_TitleBarHeight);
        height += 8;
        QRect titleBarRect(0,
                           0,
                           width(),
                           height);
    
        QColor color{Qt::white};
        if(dwmColorPrevalence())
        {
            color = QtWin::realColorizationColor();
        }
    
        if(this->isActiveWindow()){
            color.setAlphaF(1);
        }else{
            color.setAlphaF(0.7);
        }
        p.fillRect(titleBarRect, color);
        p.restore();
    
        // draw icons
        p.save();
    
        if(mini_hover_ ){
            QColor color("#B9B9B9");
            color.setAlphaF(0.5);
            p.fillRect(rectMini, color);
        }
    
        if(max_hover_ ){
            QColor color("#B9B9B9");
            color.setAlphaF(0.3);
            p.fillRect(rectMaxNormal, color);
        }
    
        if(close_hover_){
            p.fillRect(rectClose, QColor("#E81123"));
        }
    
        // draw minimum icon
        auto pix = getPixmap(Icon_Mini, this->getIconColor());
        p.drawPixmap(QPointF(rectMini.x() + (rectMini.width() - pix.width()) / 2,
                             rectMini.y() + (rectMini.height() - pix.height()) / 2),
                     pix);
        // draw maximum and resore icon
        IconType type = this->window()->isMaximized()
                ? Icon_Restore
                : Icon_Max;
        pix = getPixmap(type, this->getIconColor());
        p.drawPixmap(QPointF(rectMaxNormal.x() + (rectMaxNormal.width() - pix.width()) / 2,
                             rectMaxNormal.y() + (rectMaxNormal.height() - pix.height()) / 2),
                    pix);
    
        // draw close icon
        if(close_hover_){
            pix = getPixmap(Icon_Close, Qt::white);
        }else{
            pix = getPixmap(Icon_Close, this->getIconColor());
        }
    
        p.drawPixmap(QPointF(rectClose.x() + (rectClose.width() - pix.width()) / 2,
                             rectClose.y() + (rectClose.height() - pix.height()) / 2),
                     pix);
        p.restore();
    }
    
    void CaptionWidget::mouseMoveEvent(QMouseEvent *event)
    {
        QWidget::mouseMoveEvent(event);
    
        QPoint p = event->pos();
        mini_hover_ = getRect(Rect_Mini).contains(p);
        max_hover_ = getRect(Rect_NormalMax).contains(p);
        close_hover_ = getRect(Rect_Close).contains(p);
    
        update();
    }
    
    void CaptionWidget::mousePressEvent(QMouseEvent *event)
    {
        QWidget::mousePressEvent(event);
    
        QPoint p = event->pos();
        if(event->button() == Qt::LeftButton)
        {
            if(getRect(Rect_Other).contains(p)){
    
                if(::ReleaseCapture()){
                    SendMessage(HWND(this->window()->winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
                    event->ignore();
                }
    
            }
        }
    }
    
    void CaptionWidget::mouseReleaseEvent(QMouseEvent *event)
    {
        QWidget::mouseReleaseEvent(event);
    
        QPoint p = event->pos();
        if(event->button() == Qt::LeftButton)
        {
            if(getRect(Rect_Mini).contains(p) ){
                emit btnMinClicked();
                mini_hover_ = false;
                update();
            }
            if(getRect(Rect_NormalMax).contains(p)){
                emit btnMaxNormalClicked();
                max_hover_ = false;
                update();
                const QSignalBlocker blocker(this);
            }
            if(getRect(Rect_Close).contains(p)){
                emit btnCloseClicked();
            }
        }
    }
    
    void CaptionWidget::mouseDoubleClickEvent(QMouseEvent *event)
    {
        QWidget::mouseDoubleClickEvent(event);
        auto w = this->window();
        auto p = event->pos();
        if(getRect(Rect_Other).contains(p)){
            if(event->button() == Qt::LeftButton){
                if(w->isMaximized()){
                    w->showNormal();
                }else{
                    w->showMaximized();
                }
            }
        }
    }
    
    void CaptionWidget::leaveEvent(QEvent *event)
    {
        mini_hover_ = false;
        max_hover_ = false;
        close_hover_ = false;
        update();
        QWidget::leaveEvent(event);
    }
    
    QRectF CaptionWidget::getRect(CaptionWidget::RectType type)
    {
        //96 45,28
        // 120 58,42
        //144 70,45
        // 168 80,54
    
        int BtnWidth = 45;
        int BtnHeight = 28;
        int BtnSpacing = 1;
        int dpi = this->window()->logicalDpiX();
        switch (dpi) {
        case 96:
            BtnWidth = 45;
            BtnHeight = 30;
            break;
        case 120:
            BtnWidth = 56;
            BtnHeight = 40;
            break;
        case 144:
            BtnWidth = 68;
            BtnHeight = 42;
            break;
        case 168:
            BtnWidth = 78;
            BtnHeight = 52;
            break;
        default:
            BtnWidth = 45;
            BtnHeight = 28;
            break;
        }
    
    
        int x = 0;
        int y = 1;
        int w = this->width();
    
        QRectF rectClose(x + w - BtnWidth,
                         y,
                         BtnWidth,
                         BtnHeight);
        QRectF rectMax(rectClose.x() - BtnSpacing - BtnWidth,
                       y,
                       BtnWidth,
                       BtnHeight);
        QRectF rectMini(rectMax.x() - BtnSpacing - BtnWidth,
                        y,
                        BtnWidth,
                        BtnHeight);
    
        QRectF rectOther(x,
                         y,
                         x + rectMini.x(),
                         42);
    
        switch (type) {
        case Rect_Close:
            return rectClose;
        case Rect_NormalMax:
            return rectMax;
        case Rect_Mini:
            return rectMini;
        case Rect_Other:
            return rectOther;
        default:
            return QRectF();
        }
    }
    
    QPixmap CaptionWidget::getPixmap(CaptionWidget::IconType type, const QColor &color)
    {
        QSize size(10, 10);
        int rr;
        int dpi = this->window()->logicalDpiX();
        switch (dpi) {
        case 96:
            rr = 30 / 3;
            break;
        case 120:
            rr = 40 / 3;
            break;
        case 144:
            rr = 42 /3;
            break;
        case 168:
            rr = 52 / 3;
            break;
        default:
            rr = 28 /3;
            break;
        }
        size.setWidth(rr);
        size.setHeight(rr);
    
        QPixmap pix(size);
        pix.fill(Qt::transparent);
    
        QSizeF sizeF(size.width() *1.0,  size.height() * 1.0);
        QPainter p(&pix);
        switch (type) {
        case Icon_Mini:
        {
            p.save();
            QPen pen(QBrush(color), 1.0);
            p.setPen(pen);
    
            p.drawLine(QPointF(0, sizeF.height() / 2),
                        QPointF(sizeF.width(), sizeF.height() / 2));
    
            p.restore();
        }
            break;
        case Icon_Max:
        {
            p.save();
            QPen pen(QBrush(color), 1.0);
            p.setPen(pen);
    
            p.drawRect(QRectF(0.0, 0.0, sizeF.width() - 1.0, sizeF.height() - 1.0));
    
            p.restore();
        }
            break;
        case Icon_Restore:
        {
            p.save();
            p.setRenderHint(QPainter::Antialiasing);
            QPen pen(QBrush(color), 1.0);
            p.setPen(pen);
    
            QRectF rect(0,0,size.width(), size.height());
            QRectF r1(rect.x(),
                      rect.y() + rect.height() / 4,
                      rect.width() * 3 / 4,
                      rect.width() * 3 / 4);
    
            p.drawRect(r1);
    
            QVector<QLineF> lines;
            QLineF line1(QPointF(rect.x() + rect.width() * 1 / 4, rect.y() + rect.width() * 1 / 4),
                      QPointF(rect.x() + rect.width() * 1 / 4, rect.y())
                      );
            QLineF line2(QPointF(rect.x() + rect.width() * 1 / 4, rect.y()),
                      QPointF(rect.x() + rect.width(), rect.y())
                      );
            QLineF line3(QPointF(rect.x() + rect.width(), rect.y()),
                      QPointF(rect.x() + rect.width(), rect.y() + rect.width() * 3 / 4)
                      );
            QLineF line4(QPointF(rect.x() + rect.width(), rect.y() + rect.width() * 3 / 4),
                      QPointF(rect.x() + rect.width() * 3 / 4, rect.y() + rect.width() * 3 / 4)
                      );
    
            lines.append(line1);
            lines.append(line2);
            lines.append(line3);
            lines.append(line4);
    
            p.drawLines(lines);
    
            p.restore();
        }
            break;
        case Icon_Close:
        {
            p.save();
            p.setRenderHint(QPainter::Antialiasing);
            QPen pen(QBrush(color), 1.0);
            p.setPen(pen);
    
            QRectF rect(0,0,size.width(), size.height());
            p.drawLine(QPointF(rect.x(), rect.y()),
                        QPointF(rect.x() + rect.width(), rect.y() + rect.height())
                       );
            p.drawLine(QPointF(rect.x() + rect.width(), rect.y()),
                        QPointF(rect.x(), rect.y() + rect.height())
                       );
    
            p.restore();
        }
            break;
        default:
            break;
        }
    
        return pix;
    }
    
    QColor CaptionWidget::getIconColor(bool isClose)
    {
        if(!isClose){
            QColor color(Qt::black);
            if(dwmColorPrevalence() && this->isActiveWindow()){
                color = getForgroundColor(QtWin::colorizationColor());
            }
    
            return color;
        }else{
            return Qt::white;
        }
    }
    
    int CaptionWidget::itemAt(const QPoint &pos)
    {
        if(getRect(Rect_Mini).contains(pos)){
            return Rect_Mini;
        }else if(getRect(Rect_NormalMax).contains(pos)){
            return Rect_NormalMax;
        }
        else if(getRect(Rect_Close).contains(pos)){
            return Rect_Close;
        }
        return -1;
    }
    
    QColor CaptionWidget::getForgroundColor(const QColor &backgroundColor)
    {
        auto color = backgroundColor;
        double gray = (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255;
        return gray > 0.5 ? Qt::black : Qt::white;
    }
    
    bool CaptionWidget::dwmColorPrevalence()
    {
    #ifdef Q_OS_WIN
        const QString path = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM";
        const QString key = "ColorPrevalence";
        QSettings settings(path, QSettings::NativeFormat);
    
        auto value = settings.value(key, false).toBool();
        return value;
    #else
        return false;
    #endif
    }
    
    #endif  // Q_OS_WIN
    

    main.cpp

    // main.cpp
    #include "captionwidget.h"
    
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        CaptionWidget w;
        w.show();
        return a.exec();
    }
    
    

    其它功能

    最小化、最大化/还原、关闭按钮

    1.顺便绘制了一下这个几个按钮,效果一般,要用的朋友自己重绘。
    2.这三个按钮支持tooltip提示。
    3.按钮会根据背景色深浅自动变为灰色或者白色。

    窗口拖动

    这个很简单,在mousePressEvent事件中发个win32消息:

    void CaptionWidget::mousePressEvent(QMouseEvent *event)
    {
       QWidget::mousePressEvent(event);
    
       QPoint p = event->pos();
       if(event->button() == Qt::LeftButton)
       {
           if(getRect(Rect_Other).contains(p)){
    
               if(::ReleaseCapture()){
                   SendMessage(HWND(this->window()->winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
                   event->ignore();
               }
    
           }
       }
    }
    

    参考资料

    win32获取标题栏颜色

    最后

    大冬天的打字手冷jio冷的,如果对你有帮助,点个赞不过分撒。😀

    展开全文
  • 这里写自定义目录标题解决win10系统中截图异常放大的问题 window10-win10 截图放大-缩放-问题解决办法 解决win10系统中截图异常放大的问题 window10-win10 截图放大-缩放-问题解决办法 亲测: 1.应用程序–右击–...

    解决win10系统中截图异常放大的问题 window10-win10 截图放大-缩放-问题解决办法


    亲测:
    1.应用程序–右击–选择属性–选择兼容性标签—勾选“禁用全屏优化”。

    支持原创,感谢打赏!!!
    打赏随意

    展开全文
  • 错误截图如下 错误原因,这是因为在windows docker下自定义的网络类型在计算机重启之后会被注销,重启之后自然找不到了 解决方法 (1)创建新的自定义网络类型 docker network create --subnet=172.18.0.0/16 -d ...
    错误截图如下

    在这里插入图片描述

    错误原因,这是因为在windows docker下自定义的网络类型在计算机重启之后会被注销,重启之后自然找不到了
    解决方法

    (1)创建新的自定义网络类型

    docker network create --subnet=172.18.0.0/16 -d nat mynet
    

    (2)断开容器与之前的自定义网络连接

    docker network disconnect mynet nginx
    

    (3)建立容器与新的自定义网络连接

    docker network connect mynet nginx
    

    (4)启动容器

    docker start nginx
    

    如图,OK
    在这里插入图片描述

    为了方便,写一个批处理文件,新建一个txt,输入以下脚本,重命名为.bat文件

    docker network create --subnet=172.18.0.0/16 -d nat mynet
    
    docker network disconnect mynet nginx
    docker network connect mynet nginx
    docker start nginx
    
    @echo off
    echo done!
    
    pause
    
    展开全文
  • windows 10中可以自定义 Ctrl+Alt+*快捷键来打开程序,但楼主发现每次按了之后都要等3S才会启动程序,而如果用鼠标开启几乎是秒开,因此说明这不是卡顿的问题,而是系统本身哪里出了问题,所以就搜了一下,现将解决...

    问题

    windows 10中可以自定义 Ctrl+Alt+*快捷键来打开程序,但楼主发现每次按了之后都要等3S才会启动程序,而如果用鼠标开启几乎是秒开,因此说明不是卡顿的问题,而是系统本身哪里出了问题,所以就搜了一下,现将解决方案记录如下。

    解决方法

    更新: 最新的解决方案可以参见评论,以下百度贴吧的方案并不能从根本上解决该问题。

    (已失效)本方案来自百度贴吧 http://tieba.baidu.com/p/4146563002 现截图如下,感谢大兄弟的分享。
    在这里插入图片描述

    展开全文
  • 文章目录新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表...
  • win10任意形状截屏

    2020-03-11 20:56:44
    问题描述: 在有QQ登录的情况下,我们经常使用“Ctrl + Shift +A”来截图,很方便。...win10自带部分截屏快捷键:Win+Shift+S。从左到右,分别为矩形截图自定义形状截图,窗口截图和全屏截图,非常方便。 ...
  • Win10 1809美化

    2020-03-28 14:19:49
    这里写自定义目录标题任务栏居中任务栏透明图标变白色使用技巧巧让Win10晚上自动切换夜间深色模式,既酷又护眼快捷工具办公XYplorereverything截图pikpikpdf Gaaiho冰点文库美化translucent谷歌浏览器插件新的改变...
  • Win10优化大师(软媒Windows10优化大师)面向Win10操作系统提供的优化软件,提供常用系统功能的开关、应用缓存清理、软件管家、Win X快捷菜单管理、右键菜单快捷组功能、桌面显示图标控制等功能。忘掉修改注册表的那些...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • window7设置效果图,win10的是纯色背景,这里就不截图了,因为虚拟机里没有win10系统???? 具体步骤(win10下的操作 win7的话一样,除了注册表需要自己打开目录) 打开cmd(win + R 快捷打开) 输入regedit进入...
  • 使用截图工具可以自定义截取图像的范围,并且可以对截取的图像做简单的编辑。但是如果我们只是要截取整个屏幕,那么使用截屏快捷键就可以了。 截图快捷键一:Win(表示win图标的那个键) + Print Screen 同时按Win +...
  • 3.自定义封装函数 4.三层封装 5.unittest 单元测试框架 “Bill–软测终身奋斗者 ”是我的QQ名称。因为我把实际步骤截图发自己的QQ了。 以下picture就是完整的搭建过程了。 图一 ![在这里插入图片描 图二 ...
  • Win10 PC 【之前版本有无此问题】:有 【是否必现】:必现 【复现方法】:自定义视频采集,从摄像头读取图像帧发送到TRTC,对端解码显示异常。 已尝试将图像格式(<code>trtcFrame....
  • 之前有朋友问我 你电脑任务栏下...我以win10为例,给大家截图演示一下:  创建自定义工具栏的方法:  1.我们先一个本地创建一个文件夹,把自己希望能快速打开的文件、图片、或者其他文件放到里面(建议分类放...
  • 截图 主悬浮窗: 右键菜单: 任务栏窗口: 多彩皮肤: 使用方法 程序启动后在窗口点击鼠标右键可以弹出右键菜单,主要功能都集中在这个菜单中。如果需要让它嵌入到任务栏显示,请勾选“显示任务栏窗口”。要...
  • 制作自定义尺寸的图片时,可以选择“截高图(按比例截图,图片不会失真)”制图方式和“失真图”的制图方式。 3)这款工具最为强大之处,在于它可以采取“自动的方式”截图/打水印。比如说想在每天的 7:00 - 13:...
  • WIN中,习惯了用QQ的CTRL-ALT-A来截取指定区域的截屏了,确实方便好用,不过在UBUNTU中,可以使用gnome-screenshot来完成类似的功能——当然,截屏编辑等功能是没有的。 首先,打开“系统设置”中的“键盘”,...
  • 制作自定义尺寸的图片时,可以选择“截高图(按比例截图,图片不会失真)”制图方式和“失真图”的制图方式。 3)这款工具最为强大之处,在于它可以采取“自动的方式”截图/打水印。比如说想在每天的 7:00 - 13:...
  • 前阶段升级Win10,发现Office OneNote自定义截图的快捷键Win+S被微软小娜代替了,要想截图必须按Win+Shift+S键,按住这几个键可不容易,必须保持鸡爪造型还不一定能按好,忍不住上百度搜了一下,发现很多人都遇到这...
  • 1、自带录屏 Win10自带录屏功能。...最新版的Win10针对Surface Pen增添了些功能(以前没发现),可以自定义单双击启动的程序。启动草图板、便签、Windows Link等。 也可直接对屏幕截图进行标记。 3、Ctrl+F 经常...
  • 基于PCAN和UDS协议的程序下载器开发

    千次阅读 2018-05-06 20:30:39
    利用业余时间,帮助兄弟科室开发一个基于UDS协议的程序下载器,利用PCAN设备,使用C#语言,开发环境win10 软件截图: 具体下载流程基本符合ISO14229(夹杂某公司自定义流程) 模拟下载: 下载过程: ...
  • git与github结合

    2020-03-07 18:54:54
    git操作3 git在Linux上使用非常方便,最近我使用的是...windows,win10为例,git官网下载,一路默认安装就行,也可以根据自己需要自定义安装。 配置git与github连接(win10环境) 生成密钥 安装完成git客户端后,...
  • 我电脑系统是win10,所以安装的是Visual Studio 2015,安装步骤部分截图如图所示: 1.安装类型选项界面:可以选择默认安装,可以选择自定义安装,但在我的多次尝试下,默认安装有时候一些c++需要的组件要单独下载,...
  • 计算文件MD5

    2020-10-05 15:24:46
    .NET 4.5.2(Win10以下系统自行安装,需要下载链接附上。https://lanzous.com/b07fg9nzg 密码:apn4) 使用方式 1、打开软件,右键“添加文件”或“添加目录” 2、“导出表格” 软件截图 下载地址 蓝奏云 ...
  • 基于ssm的酒店管理系统,模仿win10系统的界面,挺不错哦 运行环境 jdk1.8 eclipse tomcat7 mysql5.7 项目技术 jsp+ssm(spring+s pringmvc+mybatis)+mysql 运行截图 关于开发环境 1. jdk1.8 2. myeclipse10 3. ...
  • 适用于Win7、8、8.1、10,Vista 适用于x64,x32 CPU操作系统 适用于高分屏,最佳显示缩放比为150% 程序支持国际化多语言显示,欢迎逐步程序制作语言字典 运行截图 资源引用 程序主图标来自 主要来自于 WinX ...
  • Windows系统隐私优化WPD

    2020-08-03 10:44:11
    文章目录[隐藏] 软件介绍软件截图支持系统 软件介绍WPD,堪称Win10间谍杀手,一款小巧免费的Windows系统隐私优化工具,具有隐私管理,IP拦截器,Appx应用卸载功能,通过调用系统API自定义调整及禁止相关隐私功能,...
  • Yesss日历记事软件

    2013-12-24 10:36:03
    C#开发的日历记事软件 1.日历界面,有农历显示 2.创建指定日期或时间段的事务 ...10.C# 2.0开发,win 7以上直接运行,XP需要安装.net framework 2.0 助您不忘未来事,不丢过去事,点点滴滴记心头 :)
  • 该软件不仅功能齐全,性能稳定,还提供了各种系统版本下载,简单到真正实现了一键重装XP/Win7/Win8/win10系统。装机吧一键重装系统内置ghost系统还原、系统备份等功能,免去了您手动操作的烦恼。装机吧一键重装,让...
  • 关于黑苹果的那些事儿简短的开头:由于最近在家闲来无事,发现win10的掉帧,细微的卡顿实在难以忍受,就打起了折腾黑苹果的念头,于是花了大概3天时间,终于吃上了黑苹果。在这放个截图,以示纪念功能快捷键合理的...

空空如也

空空如也

1 2 3 4 5
收藏数 88
精华内容 35
关键字:

win10自定义截图