提交测试,基本完成
This commit is contained in:
@ -1,64 +1,63 @@
|
||||
#include "qminiblink.h"
|
||||
#include <QThread>
|
||||
#include <QDebug>
|
||||
#pragma comment (lib,"Comctl32.lib")
|
||||
|
||||
QMiniBlink::QMiniBlink(QWidget *parent)
|
||||
: QWidget(parent){
|
||||
|
||||
this->parent = parent;
|
||||
wkeView = nullptr;
|
||||
//QSizePolicy sizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::QSizePolicy::Expanding);
|
||||
//setSizePolicy(sizePolicy);
|
||||
}
|
||||
void QMiniBlink::init() {
|
||||
ui.setupUi(this);
|
||||
wkeInit();
|
||||
RECT rect;
|
||||
GetWindowRect((HWND)parent->winId(), &rect);
|
||||
resize(rect.right - rect.left, rect.bottom - rect.top);
|
||||
this->wkeView = wkeCreateWebWindow(WKE_WINDOW_TYPE_CONTROL, (HWND)this->winId(), 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
|
||||
wkeSetNavigationToNewWindowEnable(this->wkeView, false);
|
||||
wkeShowWindow(this->wkeView, TRUE);
|
||||
SetParent(wkeGetWindowHandle(this->wkeView), (HWND)this->winId());
|
||||
wkeMoveWindow(this->wkeView, 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
//while(this->firstUrl.isEmpty()){}
|
||||
//wkeLoadURL(this->wkeView, this->firstUrl.toStdString().c_str());
|
||||
SetWindowSubclass((HWND)this->winId(), subClassProc, 0, (DWORD_PTR)this);
|
||||
//wkeRunMessageLoop();
|
||||
}
|
||||
QMiniBlink::~QMiniBlink(){
|
||||
qDebug() << "Destroyed";
|
||||
}
|
||||
void QMiniBlink::ondestroy() {
|
||||
if (this->wkeView != nullptr) {
|
||||
wkeDestroyWebView(wkeView);
|
||||
qDebug() << "Destroyed";
|
||||
}
|
||||
wkeShutdown();
|
||||
}
|
||||
void QMiniBlink::switchUrl(QString url) {
|
||||
wkeLoadURL(wkeView, url.toStdString().c_str());
|
||||
}
|
||||
LRESULT CALLBACK QMiniBlink::subClassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
|
||||
{
|
||||
QMiniBlink *obj = (QMiniBlink *)dwRefData;
|
||||
if (obj == nullptr)
|
||||
return DefSubclassProc(hWnd, uMsg, wParam, lParam);
|
||||
switch (uMsg) {
|
||||
case WM_SIZE:
|
||||
obj->autojustWebViewSize();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return DefSubclassProc(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
void QMiniBlink::autojustWebViewSize()
|
||||
{
|
||||
RECT rect;
|
||||
GetWindowRect((HWND)this->winId(), &rect);
|
||||
wkeMoveWindow(wkeView, 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
|
||||
}
|
||||
#include "qminiblink.h"
|
||||
#include <QThread>
|
||||
#include <QDebug>
|
||||
#pragma comment (lib,"Comctl32.lib")
|
||||
|
||||
QMiniBlink::QMiniBlink(QWidget *parent)
|
||||
: QWidget(parent){
|
||||
|
||||
this->parent = parent;
|
||||
//QSizePolicy sizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::QSizePolicy::Expanding);
|
||||
//setSizePolicy(sizePolicy);
|
||||
}
|
||||
void QMiniBlink::init() {
|
||||
ui.setupUi(this);
|
||||
mbSettings settings;
|
||||
memset(&settings, 0, sizeof(mbSettings));
|
||||
mbInit(&settings);
|
||||
RECT rect;
|
||||
GetWindowRect((HWND)parent->winId(), &rect);
|
||||
resize(rect.right - rect.left, rect.bottom - rect.top);
|
||||
this->mbView = mbCreateWebWindow(MB_WINDOW_TYPE_CONTROL, (HWND)this->winId(), 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
|
||||
mbSetNavigationToNewWindowEnable(this->mbView, false);
|
||||
mbShowWindow(this->mbView, TRUE);
|
||||
SetParent(mbGetHostHWND(this->mbView), (HWND)this->winId());
|
||||
mbMoveWindow(this->mbView, 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
//while(this->firstUrl.isEmpty()){}
|
||||
//mbLoadURL(this->mbView, this->firstUrl.toStdString().c_str());
|
||||
SetWindowSubclass((HWND)this->winId(), subClassProc, 0, (DWORD_PTR)this);
|
||||
//mbRunMessageLoop();
|
||||
}
|
||||
QMiniBlink::~QMiniBlink(){
|
||||
qDebug() << "Destroyed";
|
||||
}
|
||||
void QMiniBlink::ondestroy() {
|
||||
mbDestroyWebView(mbView);
|
||||
qDebug() << "Destroyed";
|
||||
mbUninit();
|
||||
}
|
||||
void QMiniBlink::switchUrl(QString url) {
|
||||
mbLoadURL(mbView, url.toStdString().c_str());
|
||||
}
|
||||
LRESULT CALLBACK QMiniBlink::subClassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
|
||||
{
|
||||
QMiniBlink *obj = (QMiniBlink *)dwRefData;
|
||||
if (obj == nullptr)
|
||||
return DefSubclassProc(hWnd, uMsg, wParam, lParam);
|
||||
switch (uMsg) {
|
||||
case WM_SIZE:
|
||||
obj->autojustWebViewSize();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return DefSubclassProc(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
void QMiniBlink::autojustWebViewSize()
|
||||
{
|
||||
RECT rect;
|
||||
GetWindowRect((HWND)this->winId(), &rect);
|
||||
mbMoveWindow(mbView, 0, 0, rect.right - rect.left, rect.bottom - rect.top);
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user