// 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(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(page)); select_page(0); }