| 1720 |
|
|
| 1721 |
////////////////////////////////////////////////////////////////////////////// |
////////////////////////////////////////////////////////////////////////////// |
| 1722 |
|
|
|
#define REWRITE_TEMPLATE 1 |
|
|
// quick hack :-( |
|
|
HINSTANCE TTCPropSheetDlg::ghInstance; |
|
|
class TTCPropSheetDlg* TTCPropSheetDlg::gTTCPS; |
|
|
|
|
|
LRESULT CALLBACK TTCPropSheetDlg::WndProc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) |
|
|
{ |
|
|
switch(msg){ |
|
|
case WM_INITDIALOG: |
|
|
case WM_SHOWWINDOW: { |
|
|
CenterWindow(dlg, m_hParentWnd); |
|
|
break; |
|
|
} |
|
|
} |
|
|
SetWindowLongPtrW(dlg, GWLP_WNDPROC, m_OrgProc); |
|
|
SetWindowLongPtrW(dlg, GWLP_USERDATA, m_OrgUserData); |
|
|
LRESULT result = CallWindowProcW((WNDPROC)m_OrgProc, dlg, msg, wParam, lParam); |
|
|
m_OrgProc = SetWindowLongPtrW(dlg, GWLP_WNDPROC, (LONG_PTR)WndProcStatic); |
|
|
m_OrgUserData = SetWindowLongPtrW(dlg, GWLP_USERDATA, (LONG_PTR)this); |
|
|
|
|
|
return result; |
|
|
} |
|
|
|
|
|
LRESULT CALLBACK TTCPropSheetDlg::WndProcStatic(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) |
|
|
{ |
|
|
TTCPropSheetDlg*self = (TTCPropSheetDlg*)GetWindowLongPtr(dlg, GWLP_USERDATA); |
|
|
return self->WndProc(dlg, msg, wParam, lParam); |
|
|
} |
|
|
|
|
|
int CALLBACK TTCPropSheetDlg::PropSheetProc(HWND hWnd, UINT msg, LPARAM lp) |
|
|
{ |
|
|
switch (msg) { |
|
|
case PSCB_PRECREATE: |
|
|
{ |
|
|
#if defined(REWRITE_TEMPLATE) |
|
|
// テンプレートの内容を書き換える |
|
|
// http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl15-01/index.html |
|
|
size_t PrevTemplSize; |
|
|
size_t NewTemplSize; |
|
|
DLGTEMPLATE *NewTempl = |
|
|
TTGetNewDlgTemplate(ghInstance, (DLGTEMPLATE *)lp, |
|
|
&PrevTemplSize, &NewTemplSize); |
|
|
NewTempl->style &= ~DS_CONTEXTHELP; // check DLGTEMPLATEEX |
|
|
memcpy((void *)lp, NewTempl, NewTemplSize); |
|
|
free(NewTempl); |
|
|
#endif |
|
|
break; |
|
|
} |
|
|
case PSCB_INITIALIZED: |
|
|
{ |
|
|
static const DlgTextInfo TextInfos[] = { |
|
|
{ IDOK, "BTN_OK" }, |
|
|
{ IDCANCEL, "BTN_CANCEL" }, |
|
|
{ IDHELP, "BTN_HELP" }, |
|
|
}; |
|
|
TTCPropSheetDlg*self = gTTCPS; |
|
|
self->m_hWnd = hWnd; |
|
|
SetDlgTexts(hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); |
|
|
self->m_OrgProc = SetWindowLongPtrW(hWnd, GWLP_WNDPROC, (LONG_PTR)WndProcStatic); |
|
|
self->m_OrgUserData = SetWindowLongPtrW(hWnd, GWLP_USERDATA, (LONG_PTR)self); |
|
|
break; |
|
|
} |
|
|
} |
|
|
return 0; |
|
|
} |
|
|
|
|
|
void TTCPropSheetDlg::AddPage(HPROPSHEETPAGE page) |
|
|
{ |
|
|
hPsp[m_PageCount] = page; |
|
|
m_PageCount++; |
|
|
} |
|
|
|
|
|
TTCPropSheetDlg::TTCPropSheetDlg(HINSTANCE hInstance, HWND hParentWnd) |
|
|
{ |
|
|
m_hInst = hInstance; |
|
|
m_hWnd = 0; |
|
|
m_hParentWnd = hParentWnd; |
|
|
memset(&m_psh, 0, sizeof(m_psh)); |
|
|
m_psh.dwSize = sizeof(m_psh); |
|
|
m_psh.dwFlags = PSH_DEFAULT | PSH_NOAPPLYNOW | PSH_USECALLBACK; |
|
|
//m_psh.dwFlags |= PSH_PROPTITLE; // 「のプロパティー」が追加される? |
|
|
m_psh.hwndParent = hParentWnd; |
|
|
m_psh.hInstance = hInstance; |
|
|
m_psh.pfnCallback = PropSheetProc; |
|
|
m_PageCount = 0; |
|
|
} |
|
|
TTCPropSheetDlg::~TTCPropSheetDlg() |
|
|
{ |
|
|
free((void*)m_psh.pszCaption); |
|
|
} |
|
|
|
|
|
void TTCPropSheetDlg::SetCaption(const wchar_t* caption) |
|
|
{ |
|
|
m_psh.pszCaption = _wcsdup(caption); |
|
|
} |
|
|
|
|
|
INT_PTR TTCPropSheetDlg::DoModal() |
|
|
{ |
|
|
m_psh.nPages = m_PageCount; |
|
|
m_psh.phpage = hPsp; |
|
|
ghInstance = m_hInst; |
|
|
gTTCPS = this; |
|
|
return PropertySheetW(&m_psh); |
|
|
} |
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////// |
|
|
|
|
| 1723 |
// CAddSettingPropSheetDlg |
// CAddSettingPropSheetDlg |
| 1724 |
CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(HINSTANCE hInstance, HWND hParentWnd): |
CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(HINSTANCE hInstance, HWND hParentWnd): |
| 1725 |
TTCPropSheetDlg(hInstance, hParentWnd) |
TTCPropSheetDlg(hInstance, hParentWnd, ts.UILanguageFileW) |
| 1726 |
{ |
{ |
| 1727 |
// CPP,tmfcのTTCPropertyPage派生クラスから生成 |
// CPP,tmfcのTTCPropertyPage派生クラスから生成 |
| 1728 |
int i = 0; |
int i = 0; |