| | |
| | | BEGIN_MESSAGE_MAP(CLogDlg, CDialogEx) |
| | | ON_WM_CTLCOLOR() |
| | | ON_WM_SIZE() |
| | | ON_WM_TIMER() |
| | | ON_WM_DESTROY() |
| | | ON_WM_CLOSE() |
| | | ON_NOTIFY(BLBUTTON_MENU_ITEM_CLICKED, IDC_BUTTON_LEVEL, &CLogDlg::OnButtonLevelMenuClicked) |
| | |
| | | BOOL CLogDlg::OnInitDialog() |
| | | { |
| | | CDialogEx::OnInitDialog(); |
| | | SetTimer(1, 3000, nullptr); |
| | | |
| | | |
| | | // 缓存 |
| | |
| | | m_logEdit.SetLimitText(-1); |
| | | |
| | | |
| | | //InitRxWindow(); |
| | | std::thread([this]() { |
| | | constexpr int nMaxWaitMs = 3000; // 最多等待 3 秒 |
| | | constexpr int nStepMs = 1; // 每次等待 1ms |
| | | int nElapsed = 0; |
| | | |
| | | while (nElapsed < nMaxWaitMs) { |
| | | if (theApp.m_model.getObservable() != nullptr) { |
| | | InitRxWindow(); |
| | | return; |
| | | } |
| | | std::this_thread::sleep_for(std::chrono::milliseconds(nStepMs)); |
| | | nElapsed += nStepMs; |
| | | } |
| | | |
| | | // 超时也可以发消息记录下日志 |
| | | TRACE(_T("InitRxWindow 超时,未执行\n")); |
| | | }).detach(); |
| | | |
| | | |
| | | Resize(); |
| | | |
| | | |
| | |
| | | CDialogEx::OnSize(nType, cx, cy); |
| | | if (GetDlgItem(IDC_EDIT_LOG) == nullptr) return; |
| | | Resize(); |
| | | } |
| | | |
| | | void CLogDlg::OnTimer(UINT_PTR nIDEvent) |
| | | { |
| | | if (1 == nIDEvent) { |
| | | KillTimer(1); |
| | | InitRxWindow(); |
| | | } |
| | | } |
| | | |
| | | void CLogDlg::Resize() |