107 lines
2.2 KiB
C++
107 lines
2.2 KiB
C++
|
// DlgIndicator.cpp: 实现文件
|
|||
|
//
|
|||
|
#include "DlgMain.h"
|
|||
|
#include "resource.h"
|
|||
|
|
|||
|
// CDlgIndicator 对话框
|
|||
|
#include "DlgPageAdvConfig.h"
|
|||
|
#include "DlgPageErrMsg.h"
|
|||
|
|
|||
|
dlg_main::dlg_main(HWND parent) : dlg_base(parent, IDD_MAIN), tab_(NULL)
|
|||
|
{
|
|||
|
create();
|
|||
|
}
|
|||
|
dlg_main::~dlg_main()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BOOL dlg_main::handle_message(UINT msg, WPARAM wp, LPARAM lp)
|
|||
|
{
|
|||
|
wchar_t text[40] = { 0 };
|
|||
|
BOOL ret = TRUE;
|
|||
|
|
|||
|
switch (msg)
|
|||
|
{
|
|||
|
case WM_INITDIALOG:
|
|||
|
on_init_dlg();
|
|||
|
UpdateWindow(hwnd());
|
|||
|
break;
|
|||
|
case WM_COMMAND:
|
|||
|
handle_command(HIWORD(wp), LOWORD(wp), (HWND)lp);
|
|||
|
break;
|
|||
|
case WM_NOTIFY:
|
|||
|
ret = on_notify((int)wp, (LPNMHDR)lp);
|
|||
|
break;
|
|||
|
default:
|
|||
|
ret = FALSE;
|
|||
|
}
|
|||
|
return ret;
|
|||
|
}
|
|||
|
void dlg_main::handle_command(WORD code, WORD id, HANDLE ctrl)
|
|||
|
{
|
|||
|
if (id == IDOK || id == IDCANCEL)
|
|||
|
PostQuitMessage(0);
|
|||
|
}
|
|||
|
BOOL dlg_main::on_notify(int ctrl_id, LPNMHDR pnmh)
|
|||
|
{
|
|||
|
BOOL ret = TRUE;
|
|||
|
|
|||
|
if (pnmh->hwndFrom == tab_)
|
|||
|
{
|
|||
|
if (pnmh->code == TCN_SELCHANGING)
|
|||
|
ret = FALSE;
|
|||
|
else if (pnmh->code == TCN_SELCHANGE)
|
|||
|
select_page(TabCtrl_GetCurSel(tab_));
|
|||
|
}
|
|||
|
|
|||
|
return ret;
|
|||
|
}
|
|||
|
|
|||
|
int dlg_main::add_page(const wchar_t* title, dlg_base* dlg)
|
|||
|
{
|
|||
|
HFONT font = (HFONT)SendMessage(get_item(IDOK), WM_GETFONT, 0, 0);
|
|||
|
LOGFONTW lf = { 0 };
|
|||
|
|
|||
|
GetObjectW(font, sizeof(lf), &lf);
|
|||
|
dlg->set_font(font);
|
|||
|
|
|||
|
return dlg_base::insert_page_to_tab(tab_, dlg, title);
|
|||
|
}
|
|||
|
dlg_base* dlg_main::select_page(int index)
|
|||
|
{
|
|||
|
dlg_base* ret = NULL, * cur = NULL;
|
|||
|
|
|||
|
for (int i = 0; cur = (dlg_base*)dlg_base::get_tab_item_data(tab_, i); ++i)
|
|||
|
{
|
|||
|
if (i == index)
|
|||
|
{
|
|||
|
ret = cur;
|
|||
|
cur->show(true);
|
|||
|
}
|
|||
|
else
|
|||
|
cur->show(false);
|
|||
|
}
|
|||
|
|
|||
|
return ret;
|
|||
|
}
|
|||
|
|
|||
|
void dlg_main::on_init_dlg(void)
|
|||
|
{
|
|||
|
dlg_base* page = new dlg_err_msg(hwnd());
|
|||
|
RECT r = { 0 };
|
|||
|
|
|||
|
SetWindowTextW(hwnd(), L"\u626B\u63CF\u4EEA\u9519\u8BEF\u4FE1\u606F\u53CA\u9AD8\u7EA7\u8C03\u8BD5\u914D\u7F6E");
|
|||
|
get_item_rect(IDC_STATIC_PAGE, &r, false);
|
|||
|
screen_2_client(&r);
|
|||
|
tab_ = get_item(IDC_PAGES);
|
|||
|
MoveWindow(page->hwnd(), r.left, r.top, RECT_W(r), RECT_H(r), TRUE);
|
|||
|
add_page(L"\u9519\u8BEF\u4FE1\u606F", dynamic_cast<dlg_base*>(page));
|
|||
|
|
|||
|
page = new dlg_adv_cfg(hwnd());
|
|||
|
MoveWindow(page->hwnd(), r.left, r.top, RECT_W(r), RECT_H(r), TRUE);
|
|||
|
add_page(L"\u9AD8\u7EA7\u914D\u7F6E", dynamic_cast<dlg_base*>(page));
|
|||
|
select_page(0);
|
|||
|
}
|
|||
|
|