资源简介
简单函数绘图语言解释器,用VC6实现,能根据曲线函数画出曲线,并能进行平移,旋转,放缩,变换
代码片段和文件信息
#include “semantics.h“
#include
#define MAX_CHARS 200
extern void Parser(char *SrcFilePtr);
HDC hDC;
char SrcFilePath[MAX_CHARS];
static char Name[] = “Compiler“;
//-----------------初始化窗口函数声明
static bool PrepareWindow(HINSTANCE HINSTANCE int);
//-----------------检查源程序文件是否合法函数声明
static bool CheckSrcFile(LPSTR);
//-----------------窗口消息处理函数声明
static LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);
//-----------------Window 程序主函数
int APIENTRY WinMain(HINSTANCE hInstance
HINSTANCE hPrevInstance
LPSTR lpCmdLine
int nCmdShow)
{
//保存源文件路径
strcpy(SrcFilePath lpCmdLine);
//初始化窗口
if(PrepareWindow(hInstance hPrevInstance nCmdShow)!=true) {
MessageBox(NULL “窗口初始化失败 !“ “错误“ MB_OK);
return 1;
}
//检查要分析的源程序文件
if(!CheckSrcFile(lpCmdLine)) return 1;
//----------------------------------------
// 调用绘图语言解释器
Parser(SrcFilePath);
//----------------------------------------
//进入窗口消息循环
MSG Msg;
while(GetMessage(&Msg NULL0 0)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
//--------------初始化窗口函数实现
bool PrepareWindow(HINSTANCE hInst
HINSTANCE hPrevInstance
int nCmdShow) {
HWND hWnd;
WNDCLASS W;
memset(&W 0 sizeof(WNDCLASS));
W.style = CS_HREDRAW | CS_VREDRAW;
W.lpfnWndProc = WndProc;
W.hInstance = hInst;
W.hCursor = LoadCursor(NULL IDC_ARROW);
W.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
W.lpszClassName = Name;
RegisterClass(&W);
hWnd = CreateWindow(Name Name
WS_OVERLAPPEDWINDOW
225 225 740 490 NULL NULLhInstNULL);
if(hWnd == NULL)
return false;
ShowWindow(hWnd nCmdShow);
UpdateWindow(hWnd);
SetCursor(LoadCursor(hInst IDC_ARROW));
hDC = GetDC(hWnd);
return true;
}
//--------------------检查源程序文件是否合法函数实现
bool CheckSrcFile(LPSTR lpszCmdParam) {
FILE *file = NULL;
if(strlen(lpszCmdParam) == 0) {
MessageBox(NULL“未指定源程序文件!“ “Error“ MB_OK);
return false;
}
if((file=fopen(lpszCmdParam “r“))==NULL) {
MessageBox(NULL “打开源程序文件出错!“ “错误“ MB_OK);
MessageBox(NULL lpszCmdParam “文件名“ MB_OK);
return false;
}
else fclose(file);
return true;
}
//-------------------窗口消息处理函数实现
LRESULT CALLBACK WndProc(HWND hWnd UINT Message WPARAM wParam LPARAM lParam) {
switch(Message) {
case WM_DESTROY :
ReleaseDC(hWnd hDC);
PostQuitMessage(0);
return 0;
case WM_PAINT :
PAINTSTRUCT pt;
BeginPaint(hWnd &pt);
Parser(SrcFilePath);
EndPaint(hWnd &pt);
default:
return DefWindowProc(hWndMessagewParam lParam);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4703 2009-04-24 23:47 FunctionPlot\FunctionPlot.dsp
文件 549 2009-04-24 17:49 FunctionPlot\FunctionPlot.dsw
文件 58368 2009-07-03 01:15 FunctionPlot\FunctionPlot.ncb
文件 49664 2009-07-03 01:15 FunctionPlot\FunctionPlot.opt
文件 258 2009-07-03 01:14 FunctionPlot\FunctionPlot.plg
文件 2784 2009-04-25 00:39 FunctionPlot\main.cpp
文件 9058 2009-04-25 00:02 FunctionPlot\parser.cpp
文件 418 2009-04-24 15:38 FunctionPlot\parser.h
文件 3430 2009-04-23 21:17 FunctionPlot\scanner.cpp
文件 1432 2009-04-24 18:02 FunctionPlot\scanner.h
文件 3330 2009-04-24 20:38 FunctionPlot\semantic.cpp
文件 529 2009-04-24 19:41 FunctionPlot\semantics.h
文件 208 2009-05-09 15:26 FunctionPlot\test.txt
目录 0 2009-07-03 01:15 FunctionPlot
----------- --------- ---------- ----- ----
134731 14
评论
共有 条评论