mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 05:32:47 +00:00
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include <windows.h>
|
|
#include "CDialogBase.h"
|
|
|
|
|
|
// ダイアログを作成する
|
|
INT_PTR CDialogBase::DoModal(HINSTANCE hInstance, int iDialogId, HWND hWndParent)
|
|
{
|
|
return DialogBoxParam(hInstance, MAKEINTRESOURCE(iDialogId), hWndParent, &DispatchDialogProc, (LPARAM)this);
|
|
}
|
|
|
|
HWND CDialogBase::GetDialogHWND(void)
|
|
{
|
|
return hDialog;
|
|
}
|
|
|
|
// ダイアログプロシージャ(形式上)
|
|
INT_PTR CALLBACK CDialogBase::DispatchDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
// ダイアログの 32 ビット整数に格納されている
|
|
// this ポインタを取りだす
|
|
CDialogBase *pcDialog = (CDialogBase *)GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
|
if(pcDialog == NULL)
|
|
{
|
|
if(uMsg == WM_INITDIALOG || uMsg == WM_CREATE)
|
|
{
|
|
// 直前に DialogBoxParam() が呼ばれてる場合
|
|
// this ポインタをダイアログのユーザー領域に入れる
|
|
pcDialog = (CDialogBase*)lParam;
|
|
|
|
SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)pcDialog);
|
|
pcDialog->hDialog = hWnd;
|
|
|
|
return pcDialog->DialogProc(hWnd, uMsg, wParam, lParam);
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
// メンバ関数のダイアログプロシージャを呼び出す
|
|
return pcDialog->DialogProc(hWnd, uMsg, wParam, lParam);
|
|
}
|