⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appmain.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 3 页
字号:
		HqSelData[i].recCount =atoi(tok);		for(j =0; j<HqSelData[i].recCount; j++)		{			if(!(tok =strtok(NULL, ","))) break;			HqSelData[i].recNum[j] =atoi(tok);					}		HqSelData[i].recCount =j;	}	*/	if(!GetInitString("HQ", "FLDS", tmp))	{		HqPaintData.fldCount =0;		return 0;	}	if(!(tok =strtok(tmp, ",")))	{		HqPaintData.fldCount =0;		return 0;	}	HqPaintData.fldCount =atoi(tok);	for(i =0; i<HqPaintData.fldCount; i++)	{		if(!(tok =strtok(NULL, ","))) break;		HqPaintData.fldNum[i] =atoi(tok);	}	HqPaintData.fldCount =i;		return 0;}int GetSelSet(void){	int i, j,k;	char tmp[6000], tmp1[20];	LPSTR tok;		for(i =0; i<5; i++)	{		sprintf(tmp1, "HQSEL%d", i);		if(!GetInitString("HQSEL", tmp1, tmp))		{			HqSelData[i].recCount =0;			continue;		}		if(!(tok =strtok(tmp, ","))) continue;;		HqSelData[i].jys =atoi(tok);		if(HqSelData[i].jys <0) HqSelData[i].jys =0;		if(HqSelData[i].jys >=2) HqSelData[i].jys =1;		if(!(tok =strtok(NULL, ","))) continue;		HqSelData[i].recCount =atoi(tok);		for(j =0; j<HqSelData[i].recCount; j++)		{			if(!(tok =strtok(NULL, ","))) break;			HqData[HqSelData[i].jys].lpPreData[HqSelData[i].recNum[j]].zqdm;			for(k=0;k<HqData[HqSelData[i].jys].recCount;k++)			{				if(strncmp(tok,HqData[HqSelData[i].jys].lpPreData[k].zqdm,						strlen(tok))==0)					break;							}     			if(k<HqData[HqSelData[i].jys].recCount)				HqSelData[i].recNum[j] =k;			else				continue;					}		HqSelData[i].recCount =j;	}		return 0;}BOOL RegisterChilds(void){	if(!RegisterHq())	{		ErrMsg(NULL, "Error Register HQ");		return FALSE;	}		if(!RegisterXlt())	{		ErrMsg(NULL, "Error Register JgGraph");		return FALSE;	}		if(!RegisterJlt())	{		ErrMsg(NULL, "Error Register JltGraph");		return FALSE;	}		if(!RegisterStatus())	{		ErrMsg(NULL, "Error Register Status");		return FALSE;	}		if(!RegisterCaption())	{		ErrMsg(NULL, "Error Register Caption");		return FALSE;	}		if(!RegisterMmp())	{		ErrMsg(NULL, "Error Register Mmp");		return FALSE;	}		if(!RegisterCj())	{		ErrMsg(NULL, "Error Register Cj");		return FALSE;	}	if(!RegisterLitHq())	{		ErrMsg(NULL, "Error Register LitHq");		return FALSE;	}	if(!RegisterMaxMin())	{		ErrMsg(NULL, "Error Register LitHq");		return FALSE;	}	if(!RegisterZs())	{		ErrMsg(NULL, "Error Register Zs");		return FALSE;	}    if(!RegisterFx())	{		ErrMsg(NULL, "Error Register Fx");		return FALSE;	}    if(!RegisterToolBar())	{		ErrMsg(NULL, "Error Register ToolBar");		return FALSE;	}	if(!RegisterHelp())	{		ErrMsg(NULL, "Error Register Help");		return FALSE;		}	if(!RegisterMsg())	{		ErrMsg(NULL, "Error Register Msg");		return FALSE;		}		return TRUE;    }BOOL CreateChilds(HWND hWnd){	if(!CreateWndHq(hWnd))	{		ErrMsg(hWnd, "CreateWndHq failed!");		return FALSE;	}	if(!CreateWndStatus(hWnd))	{		ErrMsg(hWnd, "CreateWndStatus failed!");		return FALSE;	}	if(!CreateWndCaption(hWnd))	{		ErrMsg(hWnd, "CreateWndCaption failed!");		return FALSE;	}	if(!CreateWndXlt(hWnd))	{		ErrMsg(hWnd, "CreateWndXlt failed!");		return FALSE;	}	if(!CreateWndJlt(hWnd))	{		ErrMsg(hWnd, "CreateWndJlt failed!");		return FALSE;	}	if(!CreateWndMmp(hWnd))	{		ErrMsg(hWnd, "CreateWndMmp failed!");		return FALSE;	}	if(!CreateWndCj(hWnd))	{		ErrMsg(hWnd, "CreateWndCj failed!");		return FALSE;	}	if(!CreateWndLitHq(hWnd))	{		ErrMsg(hWnd, "CreateWndLitHq failed!");		return FALSE;	}	if(!CreateWndMaxMin(hWnd))	{		ErrMsg(hWnd, "CreateWndMaxMin failed!");		return FALSE;	}	if(!CreateWndZs(hWnd))	{		ErrMsg(hWnd, "CreateWndZs failed!");		return FALSE;	}    if(!CreateWndFx(hWnd))	{		ErrMsg(hWnd, "CreateWndFx failed!");		return FALSE;    }    if(!CreateToolBar(hWnd))	{		ErrMsg(hWnd, "CreateWnd ToolBar failed!");		return FALSE;    }    if(!CreateWndHelp(hWnd))	{		ErrMsg(hWnd, "CreateWnd Help!");		return FALSE;    }    if(!CreateWndMsg(hWnd))	{		ErrMsg(hWnd, "CreateWnd Msg!");		return FALSE;    }	return TRUE;}void PASCAL ShowBmp(HDC hDC,HBITMAP hBmp,int left,int top,int width,int height){  HDC hMemDC = CreateCompatibleDC(hDC);    if(hBmp)  {    SelectObject(hMemDC,hBmp);    BitBlt(hDC,left,top,width,height,hMemDC,0,0,SRCCOPY);  }           DeleteObject(hMemDC);}void PASCAL ShowBmp1(HDC hDC,HBITMAP hBmp,int left,int top,int width,int height){  BITMAP bmp;  HDC hMemDC = CreateCompatibleDC(hDC);    GetObject(hBmp, sizeof(BITMAP), &bmp);  if(hBmp)  {    SelectObject(hMemDC,hBmp);    StretchBlt(hDC,left,top,width,height,hMemDC,0,0,			bmp.bmWidth, bmp.bmHeight,SRCCOPY);  }           DeleteObject(hMemDC);}LRESULT CALLBACK HelpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);BOOL RegisterHelp(void){	WNDCLASS wc;		memset(&wc, 0, sizeof(wc));	wc.style =CS_HREDRAW | CS_VREDRAW;	wc.lpfnWndProc =HelpWndProc;	wc.lpszClassName ="HELP";	wc.hbrBackground =GetStockObject(BLACK_BRUSH);	wc.hInstance = ghInstance;	wc.lpszMenuName = NULL;	wc.hCursor = LoadCursor(NULL, IDC_ARROW);        	wc.hIcon = LoadIcon(ghInstance, MAKEINTRESOURCE(IDR_MAINFRAME));	if(!RegisterClass(&wc)) return FALSE;		return TRUE;}int LoadFile(char *filename,int sline,char *title){    static char infile[80];    ShowWindow(ghWndHelp,SW_SHOW);    SetFocus(ghWndHelp);	if(strlen(filename)!=0)	{    	strcpy(infile,filename);    	SendMessage(ghWndHelp,WM_USER+2,(UINT)sline,(LPARAM)filename);    }    if(strlen(title)!=0)    	SetWindowText(ghWndHelp,title);     return 1;}#define		MAX_LINE_CHARS	200#define		MAX_DISP_LINE	300char *PageBuff[MAX_DISP_LINE];int LoadPage(char *filename,int lstart,int lnum){        FILE *fp;    int i,j=0;    char line[MAX_LINE_CHARS+1];    	fp=fopen(filename,"rt");	if(fp==NULL)	 return -1;		if(lnum ==0) lnum =MAX_DISP_LINE;    for(i=0;i<lstart+lnum;i++)    {    	if(fgets(line,MAX_LINE_CHARS,fp)==NULL)    		break;    	if(i<lstart) continue;    	if(PageBuff[j] ==NULL)    		PageBuff[j] =(char *)GlobalAllocPtr(GHND,MAX_LINE_CHARS*sizeof(char));	    	if(PageBuff[j]==NULL)    		break;    	memset(PageBuff[j],' ',MAX_LINE_CHARS);    	strcpy(PageBuff[j++],line);    }	fclose(fp);    return j;}extern int UDP_Send_Stock_Info(STOCK_INFO_FRAME *StockInfoFrame);LRESULT CALLBACK HelpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	PAINTSTRUCT ps;	RECT rc;	static char file[256];	static int sline=0,			   TolNum=0,			   minRange,maxRange,step,LinePerScr,CurSor=0;	int pos;    char line[256];    int i,j;    STOCK_INFO_FRAME StockInfo;    HDC hdc;    TEXTMETRIC tm;	static int FontHeight;		switch(message)	{		case WM_CREATE:			hdc =GetDC(hWnd);			SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT));			GetTextMetrics(hdc, &tm);			FontHeight =tm.tmHeight;			FontHeight +=FontHeight*15/100;			ReleaseDC(hWnd, hdc);					SetScrollRange(hWnd,SB_VERT,0,5000,TRUE);			GetScrollRange(hWnd,SB_VERT,&minRange,&maxRange);						GetClientRect(hWnd, &rc);			LinePerScr  =(rc.bottom -rc.top)/FontHeight;			memset(PageBuff,0,sizeof(char *)*MAX_DISP_LINE);		break;		case WM_SIZE:			GetClientRect(hWnd, &rc);			LinePerScr  =(rc.bottom -rc.top)/FontHeight;			if(TolNum>0)				step = maxRange/TolNum;		break;		case WM_USER+2:			strcpy(file,(LPSTR)lParam);			TolNum=sline =CurSor=0;						TolNum =LoadPage(file,sline,0);			if(TolNum>0) 			{				step = maxRange/TolNum;				InvalidateRect(ghWndHelp, NULL, TRUE);			}			else				SetTimer(hWnd,1,1000,NULL);					break;		case WM_VSCROLL:			pos=GetScrollPos(hWnd,SB_VERT);			if(wParam==SB_BOTTOM)				sline=TolNum -1;			if(wParam==SB_LINEDOWN)				if(sline<TolNum) sline++;			if(wParam==SB_PAGEDOWN)				if(sline+LinePerScr<=TolNum) sline+=LinePerScr;			if(wParam==SB_PAGEUP)			{				if(sline -LinePerScr>=0) 					sline -=LinePerScr;				else 					sline=0;						}			if(wParam==SB_LINEUP) if(sline>0) sline--;			if(wParam==SB_TOP) sline=0;			pos=step*sline ;			SetScrollPos(hWnd,SB_VERT,pos,TRUE);			InvalidateRect(ghWndHelp, NULL, TRUE);		break;		case WM_KEYDOWN:			if(wParam==VK_ESCAPE)			{				SetScrollPos(hWnd,SB_VERT,0,TRUE);				ShowWindow(hWnd,SW_HIDE);				KillTimer(hWnd,1);				for(i=0;i<TolNum;i++) 				{					GlobalFreePtr(PageBuff[i]);					PageBuff[i] =NULL;				}				TolNum=sline =CurSor=0;								break;			}			pos=GetScrollPos(hWnd,SB_VERT);			if(wParam==VK_UP)			{   				if(TolNum>0)				{					hdc =GetDC(hWnd);					SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT));					SetBkColor(hdc, RGB(0, 0, 0));									SetTextColor(hdc, RGB(10,150,100));					TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor],						strlen(PageBuff[sline+CurSor])-1);									 		if(CurSor>0) CurSor--; 					SetTextColor(hdc, RGB(0,255,255));					TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor],						strlen(PageBuff[sline+CurSor])-1);									 		ReleaseDC(hWnd,hdc);			 	}			 	break;			}						if(wParam==VK_DOWN) 			{   				if(TolNum>0)				{					hdc =GetDC(hWnd);						SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT));					SetBkColor(hdc, RGB(0, 0, 0));									SetTextColor(hdc, RGB(10,150,100));					TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor],						strlen(PageBuff[sline+CurSor])-1);													if(CurSor<LinePerScr &&CurSor +sline <TolNum-1) 						CurSor++;					SetTextColor(hdc, RGB(0,255,255));					TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor],						strlen(PageBuff[sline+CurSor])-1);									 		ReleaseDC(hWnd,hdc);				}				break;			}						if(wParam==VK_NEXT)			{   				if(TolNum>0)				{					CurSor =0;					if(sline+LinePerScr<TolNum)						sline+=LinePerScr;					else					{						sline =TolNum -LinePerScr -1;						if(sline <0) sline =0;					}				}			}			if(wParam==VK_PRIOR)			{				if(TolNum>0)				{					CurSor =LinePerScr -1;					if(sline -LinePerScr>=0) 						sline -=LinePerScr;					else 						sline=0;				}			}			if(wParam ==VK_RETURN)			{   							if(TolNum>0)				{					if(strstr(strupr(file),"IDX")!=NULL)			        {						StockInfo.type= 2;						strncpy(line,PageBuff[sline+CurSor],12);						line[12] =0;						for(i=0;i<12;i++)						{							if(line[i]!=' ') break;						}						if(i<12)						{							strcpy(StockInfo.name,&line[i]);			    			sprintf(file,"%s\\%s",szDataPath,&line[i]);			    			TolNum=sline =CurSor=0;			    			UDP_Send_Stock_Info(&StockInfo);			    			SetTimer(hWnd,1,3000,NULL);			    		}			    	}			    }			}			pos=step*sline ; 			SetScrollPos(hWnd,SB_VERT,pos,TRUE);			InvalidateRect(ghWndHelp, NULL, TRUE);		break;		case WM_TIMER:			KillTimer(hWnd,1);			TolNum =LoadPage(file,sline,0);			if(TolNum>0) 			{				step = maxRange/TolNum;				InvalidateRect(ghWndHelp, NULL, TRUE);			}			else				SetTimer(hWnd,1,1000,NULL);		break;		//case WM_KILLFOCUS:		//	KillTimer(hWnd,1);		//break;		case WM_PAINT:			BeginPaint(hWnd, &ps);			SelectObject(ps.hdc,GetStockObject(SYSTEM_FIXED_FONT));			SetBkColor(ps.hdc, RGB(0, 0, 0));			    		for(i=sline,j=0;i<TolNum&&i<=LinePerScr+sline;i++,j++)    		{    			memset(line,' ',256);    			TextOut(ps.hdc,2,j*FontHeight,line,256);    				    			if(j==CurSor)    				SetTextColor(ps.hdc, RGB(0,255,255));    			else    				SetTextColor(ps.hdc, RGB(10,150,100));    			TextOut(ps.hdc,2,j*FontHeight,PageBuff[i],strlen(PageBuff[i])-1);    		}			EndPaint(hWnd, &ps);		break;		case WM_DESTROY:					KillTimer(hWnd,1);		break;		default:		break;	}	return DefWindowProc(hWnd, message, wParam, lParam);}BOOL CreateWndHelp(HWND hWnd){                          	int x ;	HWND hwnd;	RECT rc;			GetClientRect(ghWndMain, &rc);			x =GetSystemMetrics(SM_CXSCREEN);			if(ghWndHelp ==NULL)	{		hwnd =CreateWindow("HELP", "在线帮助[ESC退出]", WS_POPUP|WS_CAPTION|WS_HSCROLL|WS_VSCROLL|WS_THICKFRAME,						0, 						STATUS_HEIGHT-2+TOOLBAR_HEIGHT,						x, 						rc.bottom -rc.top -STATUS_HEIGHT*2-TOOLBAR_HEIGHT+2,						NULL, NULL, ghInstance, NULL);		if(hwnd ==NULL)		{			ErrMsg(hWnd, "Error create help window");			return FALSE;		}			ghWndHelp =hwnd;		ShowWindow(hwnd, SW_HIDE);	}	return TRUE;}    int ReCreateChild(void){	PostMessage(ghWndHq,WM_CLOSE,0,0L);	PostMessage(ghWndStatus,WM_CLOSE,0,0L);	//PostMessage(ghWndCaption,WM_CLOSE,0,0L);	PostMessage(ghWndXlt,WM_CLOSE,0,0L);	PostMessage(ghWndJlt,WM_CLOSE,0,0L);	PostMessage(ghWndMmp,WM_CLOSE,0,0L);	PostMessage(ghWndCj,WM_CLOSE,0,0L);	PostMessage(ghWndLitHq,WM_CLOSE,0,0L);	PostMessage(ghWndMaxMin,WM_CLOSE,0,0L);	PostMessage(ghWndZs,WM_CLOSE,0,0L);	PostMessage(ghWndFx,WM_CLOSE,0,0L);	ghWndHq=ghWndXlt=ghWndJlt=ghWndMmp=NULL;	ghWndCj = ghWndLitHq =ghWndMaxMin =ghWndZs =NULL;	ghWndFx =NULL;	ghWndStatus =NULL;	//PostMessage(ghWndToolBar,WM_CLOSE,0,0L);		if(!CreateChilds(ghWndMain)) 		return -1;    else     	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -