最近又写了一个调屏幕亮度的小工具,很简单,但是找资料花了很多时间…
还是先看一下最终界面:
然后是框架:
其中,gdi32.dll可以在自己电脑找,一般在C:\Windows\System32目录下。gammaramp.h和gammaramp.cpp参照:http://www.nirsoft.net/vc/change_screen_brightness.html
一般初学者才会看这篇博客吧,还是直接放原码的实在:
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <windows.h>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots://定义接收的槽函数void onSpinValueChanged(int i);void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwidow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "gammaramp.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);ui->spinBox->setRange(0, 255);ui->Slider->setRange(0, 255);//使spinbox和slider数据同步QObject::connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->Slider,SLOT(setValue(int)));QObject::connect(ui->Slider,SIGNAL(valueChanged(int)),ui->spinBox,SLOT(setValue(int)));//设初值ui->spinBox->setValue(128);setWindowTitle(tr("屏幕亮度工具"));//关联槽函数,把spinbox值传到onspinvaluechangedQObject::connect(ui->spinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinValueChanged(int)));
}MainWindow::~MainWindow()
{delete ui;
}//获取spinbox的值
void MainWindow::onSpinValueChanged(int i)
{int gamma = i;CGammaRamp GammaRamp;GammaRamp.SetBrightness(NULL, gamma);
}//假装还原到屏幕正常亮度,这个还可以写得更好,有兴趣的可以试试
void MainWindow::on_pushButton_clicked()
{CGammaRamp GammaRamp;GammaRamp.SetBrightness(NULL, 128);//手动赋的值...
}
注意事项:
1、gammaramp.cpp里可能会出现宽字符问题,加上TEXT就可以了。
2、有问题欢迎指出,大家共同进步!