// // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; //OnCreate(hWnd,wParam,lParam); //OnTimer(hWnd,wParam,lParam); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... MyOnPaint(hdc); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_TIMER: switch (wParam) { case TMR_1: //force window to repaint InvalidateRect(hWnd, NULL, TRUE); hdc = BeginPaint(hWnd, &ps); proj::update(); MyOnPaint(hdc); EndPaint(hWnd, &ps); break; } default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
void CInitDlg::OnBnClickedBtDeviceInitdlg() { // TODO: 在此添加控件通知处理程序代码 if (m_pDataProvider->m_vectUser.empty()) { AfxMessageBox(_T("尚未创建所有者,请先创建!")); return; } if (m_pDataProvider->m_vectProductionLine.empty()) { AfxMessageBox(_T("请先添加生产线!")); return; } if (m_pDataProvider->m_vectProcessModule.empty()) { AfxMessageBox(_T("请先添加工艺模块!")); return; } if (m_InitTag != DEVICE_EDIT_TAG) { ClearEditCtrl(); } m_InitTag = DEVICE_EDIT_TAG; MyOnPaint(); }
void repaintWindow(HWND hWnd, HDC &hdc, PAINTSTRUCT &ps, RECT *drawArea) { if (drawArea == NULL) InvalidateRect(hWnd, NULL, TRUE); // repaint all else InvalidateRect(hWnd, drawArea, TRUE); //repaint drawArea hdc = BeginPaint(hWnd, &ps); MyOnPaint(hdc); EndPaint(hWnd, &ps); }
BOOL CInitDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 MyOnPaint(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
void CInitDlg::OnBnClickedBtOwnerInitdlg() { // TODO: 在此添加控件通知处理程序代码 if (m_InitTag != OWER_EDIT_TAG) { ClearEditCtrl(); } m_InitTag = OWER_EDIT_TAG; MyOnPaint(); }
void CInitDlg::OnBnClickedBtLineInitdlg() { if (m_pDataProvider->m_vectUser.empty()) { AfxMessageBox(_T("尚未创建用户,请先添加用户!")); return; } if (m_InitTag != PRODUCTION_LINE_EDIT_TAG) { ClearEditCtrl(); } m_InitTag = PRODUCTION_LINE_EDIT_TAG; MyOnPaint(); }
void CInitDlg::OnNMRClickLiInitdlg(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; m_nSelectedItem = -1; LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR; if (lpNMItemActivate != NULL) { m_nSelectedItem = lpNMItemActivate->iItem; } if (m_nSelectedItem == -1) { return; } m_list_init.SetItemState(m_nSelectedItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); CMenu menu, *pSubMenu; menu.LoadMenu(IDR_INITDLG_POP_MENU); pSubMenu = menu.GetSubMenu(0); CPoint point1; //存储鼠标位置的临时变量// GetCursorPos(&point1);//得到光标处// UINT nItem1 = pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RETURNCMD | TPM_TOPALIGN, point1.x, point1.y, GetParent());//确保右键点击在哪菜单出现在哪,并返回所选的菜单项// switch (nItem1) { case ID_AA_MODIFY: //右键菜单:修改// ModifyListItem(); break; case ID_AA_DELETE: DeleteListItem(m_nSelectedItem); break; case ID_AA_MOVEUP: MoveUpItem(); break; case ID_AA_MOVEDOWN: MoveDownItem(); break; default: break; } MyOnPaint(); }
void CInitDlg::OnBnClickedBtPlcInitdlg() { if (m_pDataProvider->m_vectUser.empty()) { AfxMessageBox(_T("尚未创建用户,请先添加用户!")); return; } if (m_pDataProvider->m_vectProductionLine.empty()) { AfxMessageBox(_T("请先添加生产线!")); return; } if (m_InitTag != PLC_EDIT_TAG) { this->ClearEditCtrl(); } m_InitTag = PLC_EDIT_TAG; MyOnPaint(); }
void CInitDlg::OnBnClickedBtVedioInitdlg() { // TODO: 在此添加控件通知处理程序代码 if (m_pDataProvider->m_vectUser.empty()) { AfxMessageBox(_T("尚未创建所有者,请先添加所有者!")); return; } if (m_pDataProvider->m_vectProductionLine.empty()) { AfxMessageBox(_T("请先添加生产线!")); return; } m_InitTag = VIDEO_EDIT_TAG; MyOnPaint(); }
void CInitDlg::OnBnClickedBtModuleInitdlg() { // TODO: 在此添加控件通知处理程序代码 if (m_pDataProvider->m_vectUser.empty()) { AfxMessageBox(_T("尚未创建用户,请先添加用户!")); return; } if (m_pDataProvider->m_vectProductionLine.empty()) { AfxMessageBox(_T("请先添加生产线!")); return; } if (m_InitTag != MODULE_EDIT_TAG) { ClearEditCtrl(); } m_InitTag = MODULE_EDIT_TAG; MyOnPaint(); }
// // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; //OnCreate(hWnd,wParam,lParam); //OnTimer(hWnd,wParam,lParam); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu & button selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; /*case ID_BUTTON1: SetTimer(hWnd, TMR_1, 10, 0); break; case ID_BUTTON2: KillTimer( hWnd, TMR_1 ); break;*/ default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... MyOnPaint(hdc); PaintCrane( hdc ); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_TIMER: switch (wParam) { case TMR_1: //force window to repaint InvalidateRect(hWnd, &drawArea, TRUE); hdc = BeginPaint(hWnd, &ps); MyOnPaint( hdc ); EndPaint(hWnd, &ps); break; } case WM_KEYDOWN: // TODO: Add any drawing code here... switch( (int)wParam ) { case VK_DOWN: trojkaty[ 0 ].SetParameters( trojkaty[ 0 ].getPeakPoint().X, trojkaty[ 0 ].getPeakPoint().Y + 1, 80 ); break; case VK_UP: trojkaty[ 0 ].SetParameters( trojkaty[ 0 ].getPeakPoint().X, trojkaty[ 0 ].getPeakPoint().Y - 1, 80 ); break; case VK_LEFT: trojkaty[ 0 ].SetParameters( trojkaty[ 0 ].getPeakPoint().X - 1, trojkaty[ 0 ].getPeakPoint().Y, 80 ); break; case VK_RIGHT: trojkaty[ 0 ].SetParameters( trojkaty[ 0 ].getPeakPoint().X + 1, trojkaty[ 0 ].getPeakPoint().Y, 80 ); break; case VK_RETURN: break; case VK_SPACE: break; } InvalidateRect(hWnd, &drawArea, TRUE); hdc = BeginPaint(hWnd, &ps); MyOnPaint( hdc ); EndPaint(hWnd, &ps); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }