mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 13:42:48 +00:00
88 lines
2.0 KiB
C++
88 lines
2.0 KiB
C++
|
#include <windows.h>
|
|||
|
#include "CControl.h"
|
|||
|
|
|||
|
|
|||
|
CControl::CControl(const UINT ID)
|
|||
|
{
|
|||
|
ResourceID = ID;
|
|||
|
}
|
|||
|
|
|||
|
CControl::CControl()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
CControl::~CControl()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
void CControl::RegisterFunc(HWND hWnd)
|
|||
|
{
|
|||
|
hSub = GetDlgItem(hWnd, ResourceID);
|
|||
|
|
|||
|
if(hSub == NULL)
|
|||
|
return;
|
|||
|
|
|||
|
SetWindowLongPtr(hSub, GWLP_USERDATA, (LONG_PTR)this);
|
|||
|
|
|||
|
OrgSubWnd = (WNDPROC)GetWindowLongPtr(hSub, GWLP_WNDPROC);
|
|||
|
SetWindowLongPtr(hSub, GWLP_WNDPROC, (LONG_PTR)DispatchSubProc);
|
|||
|
}
|
|||
|
|
|||
|
int CControl::GetResourceID()
|
|||
|
{
|
|||
|
return ResourceID;
|
|||
|
}
|
|||
|
|
|||
|
void CControl::SetEventCallBack(const CustomEventFunc &func, const LPVOID lpData, const UINT uMsg)
|
|||
|
{
|
|||
|
mEventMap[uMsg] = stEvent(func, lpData);
|
|||
|
}
|
|||
|
|
|||
|
BOOL CControl::Register(LPCTSTR ClassName, const HINSTANCE hInstance)
|
|||
|
{
|
|||
|
WNDCLASS winc;
|
|||
|
|
|||
|
winc.style = CS_HREDRAW | CS_VREDRAW;
|
|||
|
winc.cbClsExtra = winc.cbWndExtra = 0;
|
|||
|
winc.hInstance = hInstance;
|
|||
|
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
|
|||
|
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
|
|||
|
winc.lpszMenuName = NULL;
|
|||
|
winc.lpfnWndProc = DispatchCustomProc;
|
|||
|
winc.hIcon = NULL;
|
|||
|
winc.lpszClassName = ClassName;
|
|||
|
|
|||
|
return RegisterClass(&winc);
|
|||
|
}
|
|||
|
|
|||
|
LRESULT CControl::SubProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
|
{
|
|||
|
auto it = mEventMap.find(uMsg);
|
|||
|
if(it != mEventMap.end())
|
|||
|
return it->second.pfunc(hWnd, wParam, lParam, OrgSubWnd, it->second.lpData);
|
|||
|
else
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ŏ<EFBFBD><C58F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>̂͌<CC82><CD8C>̃v<CC83><76><EFBFBD>V<EFBFBD>[<5B>W<EFBFBD><57><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ă<EFBFBD><C482>炤
|
|||
|
return CallWindowProc(OrgSubWnd, hWnd, uMsg, wParam, lParam);
|
|||
|
}
|
|||
|
|
|||
|
// <20>_<EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>O<EFBFBD>v<EFBFBD><76><EFBFBD>V<EFBFBD>[<5B>W<EFBFBD><57>(<28>`<60><><EFBFBD><EFBFBD>)
|
|||
|
LRESULT CALLBACK CControl::DispatchSubProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
|
{
|
|||
|
// <20>_<EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>O<EFBFBD><4F> 32 <20>r<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ɋi<C98A>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
|||
|
// this <20>|<7C>C<EFBFBD><43><EFBFBD>^<5E><><EFBFBD><EFBFBD><EFBFBD>肾<EFBFBD><E882BE>
|
|||
|
CControl *pcControl = (CControl *)GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
|||
|
if(pcControl == NULL)
|
|||
|
{
|
|||
|
// <20><><EFBFBD>Ԃ<D482><F182B182><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>邱<EFBFBD>Ƃ͂Ȃ<CD82>
|
|||
|
return NULL;
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD><EFBFBD><D690>̃_<CC83>C<EFBFBD>A<EFBFBD><41><EFBFBD>O<EFBFBD>v<EFBFBD><76><EFBFBD>V<EFBFBD>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>Ăяo<D18F><6F>
|
|||
|
return pcControl->SubProc(hWnd, uMsg, wParam, lParam);
|
|||
|
}
|
|||
|
|
|||
|
LRESULT CALLBACK CControl::DispatchCustomProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
|
{
|
|||
|
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
|||
|
}
|