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

📄 jy_cl.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 5 页
字号:
#include <windows.h>#include <string.h>#include <stdio.h>#include <malloc.h>#include <ctype.h>#include <stdlib.h>#include <io.h>#include "resource.h"#include "hq.h"#include "hq_cl.h"#include "jy_cl.h"#include "jy_tcp.h"#include "msg.h"#include "pctcp.h"#include "des.h"JY_ANS_CHKUSR curChkUsrRes;JY_ASK_CHKUSR curChkUsrData;ZQSXX Qsxx;char Addr[MAX_ZQS_COUNT][15];extern BOOL gfTest;extern int STATUS_HEIGHT;int JyFunc=0,JyOffLineTime=250,JyQs=0;#define NULL_FUNC		0	          #define BUY_FUNC		1#define SELL_FUNC		2#define CANCEL_FUNC		3          #define	CJCX_FUNC		4#define WTCX_FUNC		5#define YECX_FUNC		6#define CHGPWD_FUNC		7	#define EXIT_FUNC		8#define MAX_IDEL_TIME	120void CenterWindow(HWND hDlg);int gnTimers =0;extern BOOL udpread_stop;extern HINSTANCE ghInstance;extern HWND ghWndMain, ghWndHq, ghWndStatus, hWndInput;extern BOOL IsZsRec(int jys, int recNum);extern BOOL ErrMsg(HWND, LPSTR);void FAR PASCAL JyDlgDrawEntireItem(LPDRAWITEMSTRUCT lpdis, int inflate);int ShowBitmap(HDC hDC, int left, int top, HBITMAP hBmp);void DrawFrame(HDC hDC, HWND hWnd);extern void DrawTime(int ret);extern char szDataPath[128];extern int ConnectToJyHost(char *HostName);HBITMAP hBmpBrush =NULL;HBRUSH hBrushBkGround =NULL;HWND ghDlgJy =NULL;extern HWND ghWndXlt, ghWndJlt, ghWndCj, ghWndMmp, ghWndLitHq;extern int sdHq;#define JY_BTN_COUNT	14HBITMAP hBmpSel =NULL, hBmpFoc =NULL;void FAR PASCAL BtnDrawEntireItem(LPDRAWITEMSTRUCT lpdis);void FAR PASCAL BtnFocusState(LPDRAWITEMSTRUCT lpdis);void FAR PASCAL BtnSelectionState(LPDRAWITEMSTRUCT lpdis);void DrawBtnNormal(LPDRAWITEMSTRUCT lpdis, BOOL fDrawFrame);void DrawBtnFocus(LPDRAWITEMSTRUCT lpdis);void DrawBtnUnFocus(LPDRAWITEMSTRUCT lpdis);void DrawBtnSelected(LPDRAWITEMSTRUCT lpdis);HBRUSH DrawChild(HDC hDC, HWND hWnd);BOOL isWndClass(HWND hWnd,LPSTR ClassName);extern int WinVer;extern char  *JyReadBuf;extern unsigned char DesKey[9];BOOL JyInit(void){   		JyReadBuf  =(char *)_fmalloc(MAX_READ_BUF_SIZE+1);		memset(&curChkUsrRes, 0, sizeof(curChkUsrRes));	curChkUsrRes.flag =-1;	memset(&curChkUsrData, 0, sizeof(curChkUsrData));	memset(&Qsxx,0,sizeof(ZQSXX));		hBmpBrush =LoadBitmap(ghInstance, MAKEINTRESOURCE(IDB_BACKGROUND));	if(hBmpBrush ==NULL)	{		ErrMsg(NULL, "load background bitmap failed");		return FALSE;	}	hBrushBkGround =CreatePatternBrush(hBmpBrush);	if(hBrushBkGround ==NULL)	{		ErrMsg(NULL, "Create background brush failed");		return FALSE;	}			if(access("DES3W16.DLL",0)==0)		hDesDll = LoadLibrary("DES3W16.DLL");		//if(hDesDll==NULL)	//{	//	ErrMsg(ghWndMain, "can not load DES dll"); 	//	return FALSE;	//}	//else	if(hDesDll>32)	{		desinit= (lpfnDES_INIT)GetProcAddress(hDesDll,"desinit");		ecbencode =(lpfnDES_ECB)GetProcAddress(hDesDll,"ecbencode");		if(!desinit||!ecbencode)		{			ErrMsg(ghWndMain, "can not load DES FUNC"); 			FreeLibrary(hDesDll);			hDesDll=NULL;			//return FALSE;		}    }    else    	hDesDll =NULL;    		strcpy(DesKey,"98124325");	hBmpSel =LoadBitmap(ghInstance, MAKEINTRESOURCE(IDB_SEL));	hBmpFoc =LoadBitmap(ghInstance, MAKEINTRESOURCE(IDB_FOC));	return TRUE;}int InitQsInfo(void){ 	int i;	char buf[256];	char item[40],file[80];		sprintf(file,"%s\\sysinfo.dat",szDataPath);	for(i=0;i<MAX_ZQS_COUNT;i++)		{		sprintf(item,"QS%d",i+1);		GetPrivateProfileString("ZQS_NAME", item, "", buf, 256, file);		if(*buf==0)			break;		strcpy(Qsxx.zqsjc[i],buf);		Qsxx.zqsid[i] =i+1;		GetPrivateProfileString("ZQS_ADDR", item, "", buf, 256, file);		if(*buf!=0)			strcpy(Addr[i],buf);				}	if(i==0&&*buf==0) return -1;	return 0;}void JyExit(void){	if(hBrushBkGround) DeleteObject(hBrushBkGround);	if(hBmpBrush) DeleteObject(hBmpBrush);	if(hBmpSel) DeleteObject(hBmpSel);	if(hBmpFoc) DeleteObject(hBmpFoc);	_ffree(JyReadBuf);   	if(hDesDll!=NULL) FreeLibrary(hDesDll);}extern void SendJyExit(char *);extern void SendJyQsxx(void);int jy(void){       	if(HqTime[0].fRunning ==FALSE && HqTime[1].fRunning ==FALSE)	{		ErrMsg(ghWndMain, "深圳和上海交易所已经收市!");		return 0;	}		if(JyQs ==0 && !gfTest)	{		ErrMsg(ghWndMain, "请您按F11键选择券商!");		return 0;	}	if(curChkUsrRes.userId==0 && !gfTest)		{		if(DlgSelectJys()<0) 			return 0;		// 检查用户的股东代码和交易密码		if(DlgChkUsr() <0) 			return 0;		if(curChkUsrRes.userId==0)			return 0;				}		JyOffLineTime=250;	while(1)	{		DlgJy();			switch(JyFunc)		{			case NULL_FUNC:				return 0;			case BUY_FUNC:					DlgBuySell('B');			break;			case SELL_FUNC:					DlgBuySell('S');			break;			case CANCEL_FUNC:					DlgCancel();			break;			case CJCX_FUNC:					DlgCjcx();			break;			case WTCX_FUNC:					DlgWtcx();			break;			case YECX_FUNC:					DlgYecx();			break;			case CHGPWD_FUNC:					DlgChgPwd();			break;							case EXIT_FUNC:				SendJyExit(curChkUsrData.gddm);				curChkUsrRes.flag =-1;				curChkUsrRes.userId=0;				return 0;			break;			default:				break;		}	}	return 0;}FARPROC lpDlgProc =NULL;int DlgSelectJys(void){	int jys =0;		lpDlgProc =MakeProcInstance((FARPROC)SelJysDlgProc, ghInstance);	jys =DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_SZSH), ghWndMain,				lpDlgProc);	FreeProcInstance(lpDlgProc);		jys -=1;	if(jys >=0)	{		if(HqTime[jys].fRunning ==FALSE)		{			curChkUsrRes.flag =-1;			ErrMsg(ghWndMain, "请您注意,已经收市!");			return -1;		}		curChkUsrRes.jys =jys;		if(jys !=HqPaintData.jys)		{			HqPaintData.curSelRec =0;			HqPaintData.curRecNum =0;			if(HqPaintData.jys =0) SendMessage(ghWndHq, WM_COMMAND, IDM_HQ_SZ, 0L);			else SendMessage(ghWndHq, WM_COMMAND, IDM_HQ_SH, 0L);		}	}		return jys;}int DlgSelectZqs(void){	int zqs =0;		lpDlgProc =MakeProcInstance((FARPROC)SelZqsDlgProc, ghInstance);	zqs =DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_ZQSXX), ghWndMain,				lpDlgProc);	FreeProcInstance(lpDlgProc);	    return(zqs);}int DlgChkUsr(void){	curChkUsrRes.flag =-1;	lpDlgProc =MakeProcInstance((FARPROC)ChkUsrDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_CHKUSR), ghWndMain,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return curChkUsrRes.flag;}BOOL IsCanPwdChg =FALSE;int DlgChgPwd(void){	lpDlgProc =MakeProcInstance((FARPROC)AskPwdDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_ASKPWD), ghDlgJy,				lpDlgProc);	FreeProcInstance(lpDlgProc);        if(IsCanPwdChg)    {		lpDlgProc =MakeProcInstance((FARPROC)ChgPwdDlgProc, ghInstance);		DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_CHGPWD), ghDlgJy,				lpDlgProc);		FreeProcInstance(lpDlgProc);	}		return 0;}int DlgJy(void){	lpDlgProc =MakeProcInstance((FARPROC)JyDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_DLG), ghWndMain,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return 0;}int DlgBuySell(int bs){	lpDlgProc =MakeProcInstance((FARPROC)BuySellDlgProc, ghInstance);	DialogBoxParam(ghInstance, MAKEINTRESOURCE(IDD_JY_BUYSELL), ghDlgJy,				lpDlgProc, bs);	FreeProcInstance(lpDlgProc);		return 0;}int DlgCancel(void){	lpDlgProc =MakeProcInstance((FARPROC)CancelDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_CANCEL), ghDlgJy,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return 0;}int DlgYecx(void){	lpDlgProc =MakeProcInstance((FARPROC)YecxDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_YECX), ghDlgJy,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return 0;}int DlgCjcx(void){	lpDlgProc =MakeProcInstance((FARPROC)CjcxDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_CJCX), ghDlgJy,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return 0;}int DlgWtcx(void){	lpDlgProc =MakeProcInstance((FARPROC)WtcxDlgProc, ghInstance);	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_JY_WTCX), ghDlgJy,				lpDlgProc);	FreeProcInstance(lpDlgProc);		return 0;}LRESULT CALLBACK SelJysDlgProc(HWND hDlg, UINT msg,					WPARAM wParam, LPARAM lParam){	PAINTSTRUCT ps;	LPDRAWITEMSTRUCT lpdis;	HWND hctl;    HFONT hFont;    LOGFONT lf;	RECT rc;				switch(msg)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;						//if(Qsxx.zqsid[0]==0)			//{			//	if(InitQsInfo()!=0)			//		SendJyQsxx();			//}			CenterWindow(hDlg);		return TRUE;		case WM_CTLCOLOR:			SetBkMode((HDC)wParam, TRANSPARENT);			switch(HIWORD(lParam))			{				case CTLCOLOR_DLG:					return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);				case CTLCOLOR_MSGBOX:				case CTLCOLOR_STATIC:						return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);			}		return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);        		case WM_DRAWITEM:			lpdis = (LPDRAWITEMSTRUCT)lParam;			if (lpdis->itemID == -1)				BtnFocusState(lpdis);			else			{				switch (lpdis->itemAction)				{					case ODA_DRAWENTIRE: 						BtnDrawEntireItem(lpdis);					break;					case ODA_SELECT:						BtnSelectionState(lpdis);					break;					case ODA_FOCUS:						BtnFocusState(lpdis);					break;				}			}		break;				case WM_PAINT:			BeginPaint(hDlg, &ps);						DrawFrame(ps.hdc, hDlg);						GetClientRect(hDlg, &rc);								memset(&lf,0,sizeof(lf));			lf.lfEscapement =0;			lf.lfOrientation =0;			lf.lfStrikeOut =0;			lf.lfUnderline =0;			lf.lfItalic =0;			lf.lfCharSet = ANSI_CHARSET;			lf.lfPitchAndFamily = FF_SCRIPT;									lf.lfWeight =FW_NORMAL;            			strcpy(lf.lfFaceName, "Termianl");			       		lf.lfHeight=18;       		       		hFont =CreateFontIndirect(&lf);       		SelectObject(ps.hdc,hFont);			SetBkMode(ps.hdc,TRANSPARENT);       					       		SetTextColor(ps.hdc,RGB(0,0,0));			TextOut(ps.hdc,rc.left +10,rc.top+10,"请您选择交易所",14);       		SetTextColor(ps.hdc,RGB(255,255,255));			TextOut(ps.hdc,rc.left +10-1,rc.top+10-1,"请您选择交易所",14);						DeleteObject(hFont);			EndPaint(hDlg, &ps);		break;				case WM_COMMAND:			switch(wParam)			{				case IDOK:					hctl =GetFocus();					SendMessage(hDlg, WM_COMMAND, GetWindowWord(hctl, GWW_ID), 0L);				break;				case IDC_SH:					EndDialog(hDlg, 2);				break;				case IDC_SZ:					EndDialog(hDlg, 1);				break;				case IDCANCEL:					EndDialog(hDlg, 0);					ghDlgJy =NULL;				break;			}		break;	}		return FALSE;	}LRESULT CALLBACK SelZqsDlgProc(HWND hDlg, UINT msg,					WPARAM wParam, LPARAM lParam){	PAINTSTRUCT ps;	LPDRAWITEMSTRUCT lpdis;    char temp[20];    int i;	static HBRUSH 	hBrush;	HWND hctl; 		DWORD dw;				switch(msg)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;			CenterWindow(hDlg);			hBrush=CreateSolidBrush(RGB(0,255,255));								for(i=0;i<MAX_ZQS_COUNT;i++)			{				if(Qsxx.zqsid[i]!=0)					SendDlgItemMessage(hDlg, IDC_LIST1, LB_ADDSTRING, 0,						(LPARAM)(LPSTR)Qsxx.zqsjc[i]);				else					break;					}						if(i>0)				SendDlgItemMessage(hDlg, IDC_LIST1, LB_SETCURSEL,(WPARAM)0L,					(LPARAM)(LPSTR)0L);			 			 			//hctl =GetDlgItem(hDlg, IDC_LIST1);			//SetFocus(hctl);			return TRUE;		case WM_CTLCOLOR:			SetBkMode((HDC)wParam, TRANSPARENT);			switch(HIWORD(lParam))			{				case CTLCOLOR_DLG:				case CTLCOLOR_MSGBOX:				case CTLCOLOR_STATIC:						return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);				case CTLCOLOR_LISTBOX:					return (LRESULT)hBrush;				}		return (LRESULT)NULL;        		case WM_DRAWITEM:			lpdis = (LPDRAWITEMSTRUCT)lParam;

⌨️ 快捷键说明

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