home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 February
/
Chip_2001-02_cd1.bin
/
sharewar
/
vecad
/
source
/
DwgProc.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2000-09-20
|
3KB
|
136 lines
/********************************************************************
* Project: VeCAD ver.5.1
* Copyright (C) 1999-2000 by Oleg Kolbaskin.
* All rights reserved.
*
* VeCAD drawing procedure
********************************************************************/
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include "vecres.h"
#include "mru.h"
extern HINSTANCE ghInst; // app instance
extern HWND ghwMain; // Main App window
extern CMruList gMruList;
void OnCmFileNew ();
void OnCmFileOpen ();
static void UpdateMainTitle ();
//-------------------------------------
int CALLBACK DwgProc (int iDwg, UINT Msg, int Prm1, int Prm2, double Prm3, double Prm4, void* Prm5)
{
TCHAR szStr[256];
switch( Msg ){
case VM_ERROR:
#ifdef _DEBUG
_stprintf( szStr, _T("Error code %d"), Prm1 );
// MessageBox( 0, szStr, _T("Vecad.dll"), MB_OK | MB_ICONSTOP );
#endif
break;
case VM_GETSTRING:
// if (Prm1<11202){
// LoadString( theApp.m_hInstance, Prm1, (LPTSTR)Prm5, 256 );
// return 1;
// }
break;
case VM_ZOOM:
break;
case VM_MOUSEMOVE:
// _stprintf( szStr, _T("%.3f : %.3f"), Prm3, Prm4 );
break;
case VM_ENDPAINT:
// vlDrawPoint( 100,150, VL_PNT_ROMB, 10 );
// vlDrawPoint( -100,150, VL_PNT_ROMB, 10 );
// vlDrawLine( -100,100, 100,150 );
break;
case VM_OBJACTIVE:
if (Prm1==VL_OBJ_PAGE){
UpdateMainTitle();
}
break;
case VM_DWGLOADED:
case VM_DWGSAVED:
gMruList.Add( (LPCTSTR)Prm5 );
case VM_DWGSELECT:
UpdateMainTitle();
break;
case VM_DWGLOADING:
case VM_DWGSAVING:
_stprintf( szStr, _T("Loading: %d%%"), Prm1 );
vlStatBarSetText( VL_SB_COORD, szStr );
break;
case VM_EXECUTE:
if (Prm2!=0 &&
(Prm1==VC_FILE_NEW || Prm1==VC_FILE_OPEN))
{
switch( Prm1 ){
case VC_FILE_NEW: OnCmFileNew(); break;
case VC_FILE_OPEN: OnCmFileOpen(); break;
}
}
break;
case VM_GRIPMOVE:
// vlDataSetInt( VD_POLY_C_VER, Prm1, Prm2-1 );
// id = (int)vlDataGetDouble( VD_POLY_VER_R, Prm1 );
break;
case VM_TOOLOPEN:
if (Prm1==VC_CUSTOM+1){
return 1;
}
break;
case VM_TOOLCLICK:
if (Prm1==VC_CUSTOM+1){
MessageBox( 0, "aaa", "qqq", MB_OK );
}
break;
case VM_LBDOWN:
#ifdef _DEBUG
// return CmdPaint2();
#endif
break;
}
return 0;
}
//-------------------------------------
// Update title of the main window
//-------------------------------------
static void UpdateMainTitle ()
{
TCHAR szPgName[64], szTitle[256], szFmt[64], szFName[256];
int iPage = vlPageIndex( NULL, 0 );
int nPage = vlPageCount();
ZeroMemory( szPgName, sizeof(szPgName) );
ZeroMemory( szFName, sizeof(szFName) );
vlPropGet( VD_PAGE_NAME, iPage, szPgName );
vlPropGet( VD_DWG_FILENAME, -1, szFName );
if (_tcscmp(szFName,_T(""))==0){
LoadString( ghInst, STR_NONAME, szFName,32 );
}
LoadString( ghInst, STR_APP_TITLE2, szFmt, 60 );
_stprintf( szTitle, szFmt, szFName, iPage+1, nPage, szPgName );
SetWindowText( ghwMain, szTitle );
}