예제 #1
0
//
//  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();

}
예제 #3
0
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();
}
예제 #10
0
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();

}
예제 #11
0
//
//  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;
}