home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 February / Chip_2001-02_cd1.bin / sharewar / vecad / examples / bcpp / editor / DwgProc.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-23  |  3.3 KB  |  137 lines

  1. /********************************************************************
  2. * Project: VeCAD ver.5.1
  3. * Copyright (C) 1999-2000 by Oleg Kolbaskin.
  4. * All rights reserved.
  5. *
  6. * VeCAD drawing procedure
  7. ********************************************************************/
  8. #include <windows.h>
  9. #include <stdio.h>
  10. #include <tchar.h>
  11. #include "vecres.h"
  12. #include "mru.h"
  13.  
  14. extern HINSTANCE ghInst;     // app instance
  15. extern HWND      ghwMain;    // Main App window
  16. extern CMruList  gMruList;
  17.  
  18. void OnCmFileNew  ();
  19. void OnCmFileOpen ();
  20.  
  21. static void UpdateMainTitle ();
  22.  
  23. #pragma argsused
  24. //-------------------------------------
  25. int CALLBACK DwgProc (int iDwg, UINT Msg, int Prm1, int Prm2, double Prm3, double Prm4, void* Prm5)
  26. {
  27.   TCHAR szStr[256];
  28.  
  29.   switch( Msg ){
  30.     case VM_ERROR:
  31. #ifdef _DEBUG
  32.       _stprintf( szStr, _T("Error code %d"), Prm1 );
  33. //      MessageBox( 0, szStr, _T("Vecad.dll"), MB_OK | MB_ICONSTOP );
  34. #endif
  35.       break;
  36.  
  37.     case VM_GETSTRING:
  38. //      if (Prm1<11202){
  39. //        LoadString( theApp.m_hInstance, Prm1, (LPTSTR)Prm5, 256 );
  40. //        return 1;
  41. //      }
  42.       break;
  43.  
  44.     case VM_ZOOM:
  45.       break;
  46.  
  47.     case VM_MOUSEMOVE:
  48. //      _stprintf( szStr, _T("%.3f : %.3f"), Prm3, Prm4 );
  49.       break;
  50.  
  51.     case VM_ENDPAINT:
  52. //      vlDrawPoint( 100,150, VL_PNT_ROMB, 10 );
  53. //      vlDrawPoint( -100,150, VL_PNT_ROMB, 10 );
  54. //      vlDrawLine( -100,100, 100,150 );
  55.       break;
  56.  
  57.     case VM_OBJACTIVE:
  58.       if (Prm1==VL_OBJ_PAGE){
  59.         UpdateMainTitle();
  60.       }
  61.       break;
  62.  
  63.     case VM_DWGLOADED:
  64.     case VM_DWGSAVED:
  65.       gMruList.Add( (LPCTSTR)Prm5 );
  66.     case VM_DWGSELECT:
  67.       UpdateMainTitle();
  68.       break;
  69.  
  70.     case VM_DWGLOADING:
  71.     case VM_DWGSAVING:
  72.       _stprintf( szStr, _T("Loading: %d%%"), Prm1 );
  73.       vlStatBarSetText( VL_SB_COORD, szStr );
  74.       break;
  75.  
  76.  
  77.     case VM_EXECUTE:
  78.       if (Prm2!=0 && 
  79.           (Prm1==VC_FILE_NEW || Prm1==VC_FILE_OPEN))
  80.       {
  81.         switch( Prm1 ){
  82.           case VC_FILE_NEW:  OnCmFileNew();  break;
  83.           case VC_FILE_OPEN: OnCmFileOpen(); break;
  84.         }
  85.       }
  86.       break;
  87.  
  88.     case VM_GRIPMOVE:
  89. //      vlDataSetInt( VD_POLY_C_VER, Prm1, Prm2-1 );
  90. //      id = (int)vlDataGetDouble( VD_POLY_VER_R, Prm1 );
  91.       break;
  92.  
  93.     case VM_TOOLOPEN:
  94.       if (Prm1==VC_CUSTOM+1){
  95.         return 1;
  96.       }
  97.       break;
  98.  
  99.     case VM_TOOLCLICK:
  100.       if (Prm1==VC_CUSTOM+1){
  101.         MessageBox( 0, "aaa", "qqq", MB_OK );
  102.       }
  103.       break;
  104.  
  105.     case VM_LBDOWN:
  106. #ifdef _DEBUG
  107. //      return CmdPaint2();
  108. #endif
  109.       break;
  110.  
  111.   }
  112.   return 0;
  113. }
  114.  
  115.  
  116. //-------------------------------------
  117. //  Update title of the main window
  118. //-------------------------------------
  119. static void UpdateMainTitle ()
  120. {
  121.   TCHAR szPgName[64], szTitle[256], szFmt[64], szFName[256];
  122.  
  123.   int iPage = vlPageIndex( NULL, 0  );
  124.   int nPage = vlPageCount();
  125.   ZeroMemory( szPgName, sizeof(szPgName) );
  126.   ZeroMemory( szFName, sizeof(szFName) );
  127.   vlPropGet( VD_PAGE_NAME, iPage, szPgName );
  128.   vlPropGet( VD_DWG_FILENAME, -1, szFName );
  129.   if (_tcscmp(szFName,_T(""))==0){
  130.     LoadString( ghInst, STR_NONAME, szFName,32 );
  131.   }
  132.   LoadString( ghInst, STR_APP_TITLE2, szFmt, 60 );
  133.   _stprintf( szTitle, szFmt, szFName, iPage+1, nPage, szPgName );
  134.   SetWindowText( ghwMain, szTitle );
  135. }
  136.  
  137.