aa

    技术2022-05-11  73

    MoveWindow(0,0,925,620); GetDlgItem(IDC_STATIC_MAP)->MoveWindow(0,0,650,575,TRUE);

     GetDlgItem(IDC_STATIC_FLOOR)->MoveWindow(660,0,230,12,TRUE); GetDlgItem(IDC_STATIC_SMALLMAP)->MoveWindow(660,13,250,50,TRUE);  GetDlgItem(IDC_STATIC_OBJECT)->MoveWindow(660,70,230,12,TRUE); GetDlgItem(IDC_STATIC_OBJECT_BOX)->MoveWindow(660,85,250,375,TRUE);

     GetDlgItem(IDC_STATIC_PLAYER)->MoveWindow(660,462,50,12,TRUE); GetDlgItem(IDC_STATIC_PLAYER_BOX)->MoveWindow(660,475,75,75,TRUE);

     GetDlgItem(IDC_STATIC_ATTR)->MoveWindow(740,462,50,12,TRUE); GetDlgItem(IDC_STATIC_ATTR_BOX)->MoveWindow(740,475,170,75,TRUE);  GetDlgItem(IDC_BUTTON_NEW)->MoveWindow(663,553,80,19,TRUE); GetDlgItem(IDC_BUTTON_EDIT)->MoveWindow(745,553,80,19,TRUE); GetDlgItem(IDC_BUTTON_SAVE)->MoveWindow(827,553,80,19,TRUE);  GetDlgItem(IDC_STATIC_STATUS)->MoveWindow(0,576,160,19,TRUE); GetDlgItem(IDC_PROGRESS)->MoveWindow(162,576,300,19,TRUE); GetDlgItem(IDC_BUTTON_HELP)->MoveWindow(470,576,60,19,TRUE); GetDlgItem(IDC_STATIC_COPYRIGHT)->MoveWindow(530,576,380,19,TRUE);  // Add "About..." menu item to system menu.

     // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);

     CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) {  CString strAboutMenu;  strAboutMenu.LoadString(IDS_ABOUTBOX);  if (!strAboutMenu.IsEmpty())  {   pSysMenu->AppendMenu(MF_SEPARATOR);   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);  } }

     // Set the icon for this dialog.  The framework does this automatically //  when the application's main window is not a dialog SetIcon(m_hIcon, TRUE);   // Set big icon SetIcon(m_hIcon, FALSE);  // Set small icon  // TODO: Add extra initialization here

     if (dlgBase.DoModal() == IDOK) {

     }

     return TRUE;  // return TRUE  unless you set the focus to a control}

    void CMapEditDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == IDM_ABOUTBOX) {  CAboutDlg dlgAbout;  dlgAbout.DoModal(); } else {  CDialog::OnSysCommand(nID, lParam); }}

    // If you add a minimize button to your dialog, you will need the code below//  to draw the icon.  For MFC applications using the document/view model,//  this is automatically done for you by the framework.

    void CMapEditDlg::OnPaint() { DrawLine(); if (IsIconic()) {  CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

      // Center icon in client rectangle  int cxIcon = GetSystemMetrics(SM_CXICON);  int cyIcon = GetSystemMetrics(SM_CYICON);  CRect rect;  GetClientRect(&rect);  int x = (rect.Width() - cxIcon + 1) / 2;  int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon  dc.DrawIcon(x, y, m_hIcon);   } else {  //DrawLine();  CDialog::OnPaint(); }}

    // The system calls this to obtain the cursor to display while the user drags//  the minimized window.HCURSOR CMapEditDlg::OnQueryDragIcon(){ return (HCURSOR) m_hIcon;}

    void CMapEditDlg::OnButtonNew() { // TODO: Add your control notification handler code here dlgBase.DoModal();}

    void CMapEditDlg::OnButtonEdit() { // TODO: Add your control notification handler code here CFileDialog dlgFile(TRUE,"map",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"MAP File (*.map)|*.map||",this); dlgFile.DoModal();}

    void CMapEditDlg::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default  CDialog::OnRButtonDown(nFlags, point);}

    void CMapEditDlg::OnLButtonDown(UINT nFlags, CPoint point) {  // TODO: Add your message handler code here and/or call default int nPositionX = point.x; int nPositionY = point.y; if ((0 < nPositionX) && (650 > nPositionX) && ( 0 < nPositionY) && ( 575 > nPositionY)) {  // main    int nRow = (nPositionY -25)/50;  int nCol = nPositionX / 50;  int nPosX = nCol * 50;  int nPosY = nRow * 50 + 25;  // test  CString csOutMsg = _T("");  csOutMsg.Format("Row = %d, Col = %d",nRow,nCol);        CString csOutMsg1 = _T("");  csOutMsg1.Format("nPosX = %d, nPosY = %d",nPosX,nPosY);  csOutMsg += csOutMsg1;        MessageBox(csOutMsg);   // TextOut(this,0,0,csOutMsg,sizeof(csOutMsg));  //operate obj[nRow][nCol] } else if((660 < nPositionX) && (910 > nPositionX) && ( 13 < nPositionY) && ( 63 > nPositionY)) {  //floor  DrawLine();  MessageBox("floor window"); } else if((660 < nPositionX) && (910 > nPositionX) && ( 85 < nPositionY) && ( 485 > nPositionY)) {  //object // MessageBox("object window");  CString csTemp = _T("");  csTemp.Format(_T(" Width = %d /r/n Height = %d /r/n Move = %d /r/n Bomb out = %d"),5,4,3,1);

      m_csAttr.SetWindowText(csTemp); } else if((660 < nPositionX) && (710 > nPositionX) && ( 500 < nPositionY) && ( 550 > nPositionY)) {  //player  MessageBox("Player window"); } CDialog::OnLButtonDown(nFlags, point);}

    void CMapEditDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default int nPositionX = point.x; int nPositionY = point.y; int nRow = 0; int nCol = 0; CString csOutMsg = _T(""); if ((0 < nPositionX) && (650 > nPositionX) && ( 0 < nPositionY) && ( 575 > nPositionY)) {  // main  nRow = (nPositionY -25)/50;  nCol = nPositionX / 50;  csOutMsg.Format("Row = %d, Col = %d",nRow,nCol); } else {  csOutMsg = "Row = OUT, Col = OUT"; } m_csOutMsg.SetWindowText(csOutMsg); CDialog::OnMouseMove(nFlags, point);}void CMapEditDlg::DrawLine() {  CClientDC dc_line(this); CPen pen(PS_SOLID,1,RGB(0,128,0)); CPen *pOldPen=dc_line.SelectObject(&pen);

     for (int nRow = 0; nRow < 11; nRow++) {  int nTempRow = nRow*50+25;  dc_line.MoveTo(0, nTempRow);  dc_line.LineTo(648, nTempRow); } for (int nCol = 0; nCol < 13; nCol++) {  int nTempCol = nCol*50;  dc_line.MoveTo(nTempCol, 0);  dc_line.LineTo(nTempCol, 573); } dc_line.SelectObject(pOldPen);}

     

    void CMapEditDlg::OnButtonHelp() { // TODO: Add your control notification handler code here CAboutDlg dlg_about; dlg_about.DoModal();} 

     

     

     

     

     

     

     

     

    黑色背景

    HDC hScrDC=CreateDC("DISPLAY", NULL, NULL, NULL); hBkDC =CreateCompatibleDC(hScrDC); HBITMAP bit =CreateCompatibleBitmap(hScrDC,650,575); SelectObject(hBkDC,bit); BitBlt(dc_line.m_hDC,0,0,650,575,hBkDC,0,0,SRCCOPY);


    最新回复(0)