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

📄 jy_cl.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 5 页
字号:
			}						hdc =GetDC(hDlg);			GetClientRect(hDlg, &rc);						SetBkColor(hdc,RGB(255,0,0));			SelectObject(hdc,GetStockObject(WHITE_PEN));			strcpy(&tmp[0],"欢迎您继续委托...                         ");						TextOut(hdc,rc.left +10,rc.bottom -20,tmp,strlen(tmp));			ReleaseDC(hDlg,hdc);			SendDlgItemMessage(hDlg, IDC_JG, EM_SETSEL, 0, MAKELONG(0,-1));			SendDlgItemMessage(hDlg, IDC_JG, WM_CLEAR, 0, 0);						SendDlgItemMessage(hDlg, IDC_SL, EM_SETSEL, 0, MAKELONG(0,-1));						SendDlgItemMessage(hDlg, IDC_SL, WM_CLEAR, 0, 0);			gnTimers =0;			state =0;			EnableWindow(hDlg, TRUE);		break;	}		return FALSE;}LRESULT CALLBACK CancelDlgProc(HWND hDlg, UINT msg,					WPARAM wParam, LPARAM lParam){	static JY_ASK_CANCEL CancelData;	static JY_ANS_CANCEL CancelRes;	static JY_ASK_WTCX WtcxData;	static JY_ANS_WTCX WtcxRes;	PAINTSTRUCT ps;	int i, j, k;	DWORD dw;	HWND hctl;	static int sel_num[MAX_CANCEL_SENDCOUNT];	char tmp[256],gpmc[9];	LPSTR lpTmp;	static int state;	int idFocus,ret;	static BOOL fFirst =TRUE;	static  hBrush;	LPDRAWITEMSTRUCT lpdis;	LPMEASUREITEMSTRUCT lpmis;	TEXTMETRIC tm;	HWND hDC;					switch(msg)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;			memset(&CancelData, 0, sizeof(CancelData));			memset(&CancelRes, 0, sizeof(CancelRes));			memset(&WtcxData, 0, sizeof(WtcxData));			memset(&WtcxRes, 0, sizeof(WtcxRes));			CancelData.jys =curChkUsrRes.jys;			CancelData.cancelCount =0;			CancelData.userId =curChkUsrRes.userId;			strcpy(CancelData.gddm, curChkUsrRes.gddm);			WtcxData.jys =curChkUsrRes.jys;			WtcxData.userId =curChkUsrRes.userId;			WtcxData.cdcx='Y';			strcpy(WtcxData.gddm, curChkUsrRes.gddm);						hBrush=CreateSolidBrush(RGB(0,255,255));						if(curChkUsrRes.jys==0)				strcpy(tmp,"深圳A股");			if(curChkUsrRes.jys==1)					strcpy(tmp,"上海A股");									strcat(tmp,"撤销委托");			SetWindowText(hDlg,tmp);										PostMessage(hDlg, WM_JY_INIT, 0, 0L);			state =0;			fFirst =TRUE;			gnTimers =0;			SetTimer(hDlg,1, 1000, NULL);			CenterWindow(hDlg);					return TRUE;				case WM_JY_INIT:			SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0,						(LPARAM)(LPSTR)"正在查询委托...");			gnTimers =0;			if(gfTest)			    SendMessage(hDlg,WM_JYCX_RES,0,0L);			else				UDP_Jy_Wtcx(&WtcxData, &WtcxRes);		break;				case WM_JYCX_RES:			if(fFirst)			{				SendDlgItemMessage(hDlg, IDL_CX, LB_RESETCONTENT, 0, 0L);				fFirst =FALSE;			}			if(gfTest)			{            	ret=WtcxRes.flag=ANS_SUCC;            	WtcxRes.recCount=5;            	for(i=0;i<WtcxRes.recCount;i++)            	{            		sprintf(WtcxRes.Wt[i].hthm,"%d",i+112);            		strcpy(WtcxRes.Wt[i].wtsj,"091012");            		WtcxRes.Wt[i].mmbz='S';					if(curChkUsrRes.jys==0)						sprintf(WtcxRes.Wt[i].gpdm ,"%04d",1+i);					else						sprintf(WtcxRes.Wt[i].gpdm ,"%06ld",(long)(600600+i));            		sprintf(WtcxRes.Wt[i].wtgs,"%d",i*100+50);            		sprintf(WtcxRes.Wt[i].wtjg,"%.2f",4.23*i+12.29);            	}						}			else			{				if(WtcxRes.flag !=ANS_SUCC&&WtcxRes.recCount>0)				{					MessageBox(hDlg,"委托查询失败!", "撤单", MB_OK);									break;				} 				if(WtcxRes.recCount ==0)				{					MessageBox(hDlg,"没有可以撤消委托的合同!", "撤单", MB_OK);												break;				}			}			memset(&tmp[0], 0, sizeof(tmp));			for(i =0,j=0; i<WtcxRes.recCount; i++)			{				lpTmp =&WtcxRes.Wt[i].wtgs[0];				while(*lpTmp !=0 && *lpTmp !='-') lpTmp++;				if(*lpTmp =='-')				{					sel_num[j] =i;					j++;					continue;				}			}			k =j;			for(i =0; i<WtcxRes.recCount; i++)			{				lpTmp =&WtcxRes.Wt[i].wtgs[0];				while(*lpTmp !=0 && *lpTmp !='-') lpTmp++;				if(*lpTmp =='-') continue;				for(j =0; j<k; j++)				{					if(i ==sel_num[j]						|| !strcmp(WtcxRes.Wt[i].hthm, WtcxRes.Wt[sel_num[j]].hthm))						break;				}				if(j !=k) continue;								for(j=0;j<HqData[curChkUsrRes.jys].recCount;j++)				{					if(strncmp(HqData[curChkUsrRes.jys].lpPreData[j].zqdm,						WtcxRes.Wt[i].gpdm,strlen(HqData[curChkUsrRes.jys].lpPreData[j].zqdm))==0)					break;				}				if(j<HqData[curChkUsrRes.jys].recCount)				{					strncpy(gpmc,HqData[curChkUsrRes.jys].lpPreData[j].zqmc,8);					gpmc[8]=0;				}				else					strcpy(gpmc,WtcxRes.Wt[i].gpdm);								sprintf(tmp, "%06s  %8s  %4s  %8s %8s  %8s",							WtcxRes.Wt[i].hthm, WtcxRes.Wt[i].wtsj,							(WtcxRes.Wt[i].mmbz=='B')?"买入":							((WtcxRes.Wt[i].mmbz=='S')?"卖出":"撤单"),							gpmc, WtcxRes.Wt[i].wtgs,WtcxRes.Wt[i].wtjg);				SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0,						(LPARAM)(LPSTR)tmp);			}		break;		case WM_CTLCOLOR:			SetBkMode((HDC)wParam, TRANSPARENT);			switch(HIWORD(lParam))			{				case CTLCOLOR_DLG:				case CTLCOLOR_STATIC:					return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);				case CTLCOLOR_LISTBOX:					return (LRESULT)hBrush;				case CTLCOLOR_MSGBOX:					return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);			}		return (LRESULT)NULL;		case WM_DRAWITEM:			lpdis = (LPDRAWITEMSTRUCT)lParam;			if (lpdis->itemID == -1)			{				if(lpdis->CtlType==ODT_BUTTON)					BtnFocusState(lpdis);				if(lpdis->CtlType==ODT_LISTBOX)				{					DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem);					return TRUE;				}			}			else			{				if(lpdis->itemAction&ODA_DRAWENTIRE)				{					if(lpdis->CtlType==ODT_BUTTON)						BtnDrawEntireItem(lpdis);					if(lpdis->CtlType==ODT_LISTBOX)					{   						i=lpdis->itemID;						SendMessage(lpdis->hwndItem,LB_GETTEXT,							(WPARAM)lpdis->itemID,(LPARAM)(LPSTR)tmp);						SelectObject(lpdis->hDC,GetStockObject(SYSTEM_FIXED_FONT));							TextOut(lpdis->hDC,lpdis->rcItem.left,lpdis->rcItem.top,tmp,strlen(tmp));					}					if(lpdis->itemState&ODS_SELECTED)					{						if(lpdis->CtlType==ODT_BUTTON)							BtnSelectionState(lpdis);						if(lpdis->CtlType==ODT_LISTBOX)							InvertRect(lpdis->hDC,(LPRECT)&lpdis->rcItem);					}					if(lpdis->itemState&ODA_FOCUS)					{						if(lpdis->CtlType==ODT_BUTTON)							BtnFocusState(lpdis);						if(lpdis->CtlType==ODT_LISTBOX)							DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem);					}					return TRUE;					}				if(lpdis->itemAction&ODA_SELECT)				{					if(lpdis->CtlType==ODT_BUTTON)						BtnSelectionState(lpdis);					if(lpdis->CtlType==ODT_LISTBOX)						InvertRect(lpdis->hDC,(LPRECT)&lpdis->rcItem);					return TRUE;				}				if(lpdis->itemAction&ODA_FOCUS)				{					if(lpdis->CtlType==ODT_BUTTON)						BtnFocusState(lpdis);					if(lpdis->CtlType==ODT_LISTBOX)						DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem);					return TRUE;				}							}		break;        case WM_MEASUREITEM:        	lpmis =(LPMEASUREITEMSTRUCT)(lParam);        	hDC =GetDC(hDlg);        	SelectObject(hDC,GetStockObject(SYSTEM_FIXED_FONT));        	        	GetTextMetrics(hDC,&tm);        	lpmis->itemHeight =tm.tmHeight;        	ReleaseDC(hDlg,hDC);        break;				case WM_PAINT:			BeginPaint(hDlg, &ps);			DrawFrame(ps.hdc, hDlg);			EndPaint(hDlg, &ps);		break;		case WM_TIMER:			if(gnTimers ++>60)				SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L);		break;				case WM_COMMAND:			gnTimers =0;			switch(wParam)			{				case IDOK:					hctl =GetFocus();					idFocus =GetWindowWord(hctl, GWW_ID);					if(idFocus ==IDCANCEL)					{						SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L);						break;					}					if(CancelData.cancelCount !=0) break;					dw =SendDlgItemMessage(hDlg, IDL_CX, LB_GETSELCOUNT, 0, 0L);					hctl =GetDlgItem(hDlg, IDL_CX);					SetFocus(hctl);					if(dw ==LB_ERR)						break;					if((int)dw >MAX_CANCEL_SENDCOUNT-1)					{						wsprintf(tmp, "一次最多选择%d笔", (int)MAX_CANCEL_SENDCOUNT-1);						ErrMsg(hDlg, tmp);						break;					}					CancelData.cancelCount =(int)dw;					if(CancelData.cancelCount ==0) break;					if(SendDlgItemMessage(hDlg, IDL_CX, LB_GETSELITEMS, (int)dw,								(LPARAM)(int FAR *)sel_num) ==LB_ERR)						break;					for(i =0; i<CancelData.cancelCount; i++)					{						if(SendDlgItemMessage(hDlg, IDL_CX, LB_GETTEXT, sel_num[i],								(LPARAM)(LPSTR)tmp) ==LB_ERR)							break;						else						    strncpy(CancelData.Cancel[i].hthm,tmp,MAX_HTHM_SIZE);					}					hctl =GetFocus();					i =GetWindowWord(hctl, GWW_ID);					if(i ==IDCANCEL)					{						SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L);						break;					}					EnableWindow((HWND)LOWORD(lParam), FALSE);					memset(&CancelRes.flag, ANS_UNKOWN, sizeof(CancelRes.flag));					if(gfTest)											SendMessage(hDlg,WM_JY_RES ,0,0L);					else					{						if(UDP_Jy_Cancel(&CancelData, &CancelRes) <0)						{							ErrMsg(hDlg, "通讯错误:不能将请求送到主机");							EnableWindow((HWND)LOWORD(lParam), TRUE);							break;						}					}				break;				case IDCANCEL:					udpread_stop =TRUE;					KillTimer(hDlg, 1);					ghDlgJy =NULL;     					DeleteObject(hBrush);					EndDialog(hDlg, 0);				break;			}		break;		case WM_JY_RES:		    if(gfTest)		    	ret=CancelRes.flag[0]=ANS_SUCC;			for(i=CancelData.cancelCount-1,j=0; i>=0; i--)			{				if(CancelRes.flag[i] ==ANS_SUCC)				{					j++;					SendDlgItemMessage(hDlg, IDL_CX, LB_DELETESTRING, sel_num[i], 0L);				}			}			ret=CancelRes.flag[0];				if(j>0&&ret==ANS_SUCC)				wsprintf(tmp, "您的撤单已发出!");			else			{				switch(ret)				{				    case '1':						strcpy(tmp,"请您注意,无此合同代码!");						break;				    case '2':						strcpy(tmp,"无此股东代码或已挂失!");						break;					case '3':						strcpy(tmp,"请您注意,无此交易帐号!");						break;					case '4':						strcpy(tmp,"请您注意,撤单股数错!");						break;				    case '5':						strcpy(tmp,"请您注意,重复撤单错!");						break;				    case '6':						strcpy(tmp,"请您注意,撤单帐号错!");						break;              		case ANS_SYS_ERR:            			strcpy(tmp,"请您注意,主机系统错!");            			break;            		case ANS_SUSP_REQ:            			strcpy(tmp,"主机正在处理您的上次请求!");            			break;            		case ANS_NO_PRIV:            			strcpy(tmp,"您没有权限进入主机!");	            			break;                    default:                    	strcpy(tmp,"请您注意,未知错误");                  }							}			MessageBox(hDlg, tmp, "撤单", MB_OK);						hctl =GetDlgItem(hDlg, IDOK);			CancelData.cancelCount =0;			EnableWindow(hctl, TRUE);		break;			}		return FALSE;}LRESULT CALLBACK YecxDlgProc(HWND hDlg, UINT msg,					WPARAM wParam, LPARAM lParam){	static JY_ASK_YECX YecxData;	static JY_ANS_YECX YecxRes;	PAINTSTRUCT ps;	char tmp[256],gpmc[9];	static BOOL fFirst =TRUE;	int i,ret,j;	static HBRUSH hBrush;	LPDRAWITEMSTRUCT lpdis;	LPMEASUREITEMSTRUCT lpmis;	TEXTMETRIC tm;	HWND hDC;		switch(msg)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;			memset(&YecxData, 0, sizeof(YecxData));			memset(&YecxRes, 0, sizeof(YecxRes));			fFirst =TRUE;			YecxData.jys =curChkUsrRes.jys;			YecxData.userId =curChkUsrRes.userId;			YecxRes.recCount =0;			strcpy(YecxData.gddm, curChkUsrRes.gddm);						hBrush=CreateSolidBrush(RGB(0,255,255));						if(curChkUsrRes.jys==0)				strcpy(tmp,"深圳A股");			if(curChkUsrRes.jys==1)					strcpy(tmp,"上海A股");						strcat(tmp,"余额查询");			SetWindowText(hDlg,tmp);						PostMessage(hDlg, WM_JY_INIT, 0, 0L);			SetTimer(hDlg, 1, 1000, NULL);			gnTimers =0;			CenterWindow(hDlg);		return TRUE;		case WM_JY_INIT:			if(!fFirst) break;			SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0,						(LPARAM)(LPSTR)"正在查询...");			gnTimers =0;			if(gfTest)			{				SendMessage(hDlg, WM_JYCX_RES, 0, 0L);				YecxRes.kys =8880000.99;				YecxRes.zjye=YecxRes.kys+100;			}			else			{				if(UDP_Jy_Yecx(&YecxData, &YecxRes) <0)				{					ErrMsg(hDlg, "通讯错误:不能将请求送到主机");					SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L);				}			}		break;		case WM_JYCX_RES:			gnTimers =0;			if(fFirst)			{				SendDlgItemMessage(hDlg, IDL_CX, LB_RESETCONTENT, 0, 0L);				fFirst =FALSE;							}   						sprintf(tmp, "%.2f", YecxRes.kys);			SetDlgItemText(hDlg, IDC_KYJE, tmp);			sprintf(tmp, "%.2f", YecxRes.zjye);			SetDlgItemText(hDlg, IDC_ZJYE, tmp);			if(gfTest)			{			 	ret =YecxRes.flag=ANS_SUCC;			 	YecxRes.recCount=5;			 	for(i=0;i<YecxRes.recCount;i++)			 	{   			 		memset(&YecxRes.GpTg[i],0,sizeof(JY_GPTG));					if(curChkUsrRes.jys==0)						sprintf(YecxRes.GpTg[i].gpdm ,"%04d",1+i);					else						sprintf(YecxRes.GpTg[i].gpdm ,"%06ld",(long)(600600+i));			 		sprintf(YecxRes.GpTg[i].kys,"%d",100+i);			 		sprintf(YecxRes.GpTg[i].gpye,"%d",200+i);			 		sprintf(YecxRes.GpTg[i].ghrq,"%6s","091008");			 	}			}			else							ret =YecxRes.flag;			if(ret!=ANS_SUCC)			{   			    if(ret==1)			    	 strcpy(tmp,"请您注意,无此股东代码!");			    else if(ret==2)			    	 strcpy(tmp,"您已透资,不能查询");            	else if(ret==ANS_SYS_ERR)            		strcpy(tmp,"请您注意,主机系统错!");            	else if(ret==ANS_SUSP_REQ)            		strcpy(tmp,"主机正在处理您的上次请求!");            	else if(ret==ANS_NO_PRIV)            		strcpy(tmp,"您没有权限进入主机!");	            	else            		strcpy(tmp,"请您注意,未知系统错!");			    	                            				MessageBox(hDlg, tmp, "余额查询", MB_OK);							}			else			{					memset(&tmp[0], 0, sizeof(tmp));				if(YecxRes.recCount==0)  				{        					strcpy(tmp,"没有您的托管资料");					SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0,						(LPARAM)(LPSTR)tmp);								}				else				{					for(i =0; i<YecxRes.recCount; i++)					{						for(j=0;j<HqData[curChkUsrRes.jys].recCount;j++)						{							if(strncmp(HqData[curChkUsrRes.jys].lpPreData[j].zqdm,								YecxRes.GpTg[i].gpdm,strlen(HqData[curChkUsrRes.jys].lpPreData[j].zqdm))==0)							break;						}						if(j<HqData[curChkUsrRes.jys].recCount)						{							strncpy(gpmc,HqData[curChkUsrRes.jys].lpPreData[j].zqmc,8);							gpmc[8]=0;						}						else					    	strcpy(gpmc,YecxRes.GpTg[i].gpdm);						sprintf(tmp, "%6s  %8s  %8s  %8s",							gpmc, YecxRes.GpTg[i].kys,							YecxRes.GpTg[i].gpye, YecxRes.GpTg[i].ghrq);

⌨️ 快捷键说明

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