Esempio n. 1
0
BOOL CALLBACK UnitTestDialog::DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
  AP_UNUSED_ARG(lParam);
  switch (message) {
    case WM_INITDIALOG:
      {
        RECT rDialog;
        ::GetClientRect(hDlg, &rDialog);

        int cx = 0;
        int cy = 0;
        if ((cx = ::GetSystemMetrics(SM_CXVIRTUALSCREEN)) == 0) {
          cx = ::GetSystemMetrics(SM_CXSCREEN);
        }
        if ((cy = ::GetSystemMetrics(SM_CYVIRTUALSCREEN)) == 0) {
          cy = ::GetSystemMetrics(SM_CYSCREEN);
        }
        if (cx !=0 && cy != 0) {
          // Center
          //::SetWindowPos(hDlg, NULL, (cx - (rDialog.right - rDialog.left)) / 3, (cy - (rDialog.bottom - rDialog.top)) / 3, 0, 0, SWP_NOSIZE|SWP_NOZORDER);

          // TopRight
          //::SetWindowPos(hDlg, NULL, cx - (rDialog.right - rDialog.left), 0, 0, 0, SWP_NOSIZE|SWP_NOZORDER);

          // By config
          ::SetWindowPos(hDlg, NULL, Apollo::getModuleConfig(MODULE_NAME, "Dialog/Left", 400), Apollo::getModuleConfig(MODULE_NAME, "Dialog/Top", 100), 0, 0, SWP_NOSIZE|SWP_NOZORDER);
        }

        ::SetWindowText(::GetDlgItem(hDlg, IDC_SUMMARY), pController_->Summary());
        //::ShowWindow(hDlg, FALSE);
      }
      return TRUE;
      break;
    case WM_COMMAND:
      switch(LOWORD(wParam)) {
        case IDC_EVALUATE: {
          if (pController_ != 0) {
            pController_->Evaluate();
          }
        } break;
      }
      break;
    case WM_TIMER:
      switch (wParam) {
        case TimerShow:
          ::KillTimer(hDlg, wParam);
          ::ShowWindow(hDlg, TRUE);
          break;
        case TimerDestroy:
          ::KillTimer(hDlg, wParam);
          Destroy();
          break;
        default:;
      }
      break;
    case WM_CLOSE:
      // Crashed on DestroyWindow when no tests (!?)
      //::DestroyWindow(hDlg);
      break;
    case WM_DESTROY:
      delete this;
      break;
  }

  return FALSE;
}