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

📄 appmain.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 3 页
字号:
							strcpy(temp,HqData[0].lpPreData[i].zqmc);														PreStockName(temp);														if(IsPyOk(inkey,temp))							{								SeleGp[j][0]=0;								SeleGp[j++][1]=i;							}						}						for(i =0; i<HqData[1].recCount&&j<MAX_SELE_NUM; i++)						{							strcpy(temp,HqData[1].lpPreData[i].zqmc);														PreStockName(temp);														if(IsPyOk(inkey,temp))							{								SeleGp[j][0]=1;								SeleGp[j++][1]=i;							}						}												if(SeleGp[1][0]!=-1)						{							i=DlgSelectGp();													if(i!=-1)							if(SeleGp[i][0]!=-1)							SetWindowText(hWndInput, HqData[SeleGp[i][0]].lpPreData[SeleGp[i][1]].zqdm);						}						else						{						 	if(SeleGp[0][0]!=-1)							SetWindowText(hWndInput, HqData[SeleGp[0][0]].lpPreData[SeleGp[0][1]].zqdm);						}						if(IsWindowVisible(ghWndFx))							SendMessage(ghWndFx, WM_KEYDOWN, wParam, lParam);						else if(IsWindowVisible(ghWndXlt))							SendMessage(ghWndXlt, WM_KEYDOWN, wParam, lParam);						else SendMessage(ghWndHq, WM_KEYDOWN, wParam, lParam);			    				    	break;			    }			    strcpy(inkey,"");			    SetWindowText(hWndInput, "");			}			else			{				if(IsWindowVisible(ghWndXlt))					SendMessage(ghWndXlt, WM_KEYDOWN, wParam, lParam);				else if(IsWindowVisible(ghWndFx))					SendMessage(ghWndFx, WM_KEYDOWN, wParam, lParam);				else SendMessage(ghWndHq, WM_KEYDOWN, wParam, lParam);						}		break;				case WM_KILLFOCUS:			if(IsWindowVisible(ghWndFx))				SendMessage(ghWndFx, WM_KILLFOCUS, wParam, lParam);			else SendMessage(ghWndXlt, WM_KILLFOCUS, wParam, lParam);		break;				case WM_CLOSE:			if(MessageBox(hWnd, "您是否确定要退出?",APPNAME,						MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2|MB_SYSTEMMODAL)							==IDNO)				return 0L;			UDP_Send_Exit();			SetTimer(hWnd, 6, 1000,NULL);			gfOnLine = FALSE;			//DestroyWindow(hWnd);		break;				case WM_DESTROY:			WriteHqDataAll();			ghWndMain =NULL;			KillTimer(hWnd, 1);			KillTimer(hWnd, 2);			KillTimer(hWnd, 5);			KillTimer(hWnd, 6);			PostQuitMessage(0);		break;				case WM_COMMAND:			switch(wParam)			{				case IDM_ONLINE:					SetHqEnv();				break;								case IDM_VIEW_TOOLBAR:					if(IsWindowVisible(ghWndToolBar))					{					    ShowWindow(ghWndFx, SW_HIDE);						ShowWindow(ghWndToolBar, SW_HIDE);						ModifyMenu(ghMenuMain, IDM_VIEW_TOOLBAR, MF_STRING|MF_BYCOMMAND,									IDM_VIEW_TOOLBAR, "显示工具条");						TOOLBAR_HEIGHT=0;						ReCreateChild();					}					else					{						ShowWindow(ghWndFx, SW_HIDE);						ShowWindow(ghWndToolBar, SW_SHOW);						ModifyMenu(ghMenuMain, IDM_VIEW_TOOLBAR, MF_STRING|MF_BYCOMMAND,									IDM_VIEW_TOOLBAR, "隐藏工具条");						TOOLBAR_HEIGHT=BUTTON_HEIGHT +12;						ReCreateChild();					}				break;				case IDM_HQ_SZ:				case IDM_HQ_SH:				case IDM_HQSEL_1:				case IDM_HQSEL_2:				case IDM_HQSEL_3:				case IDM_HQSEL_4:				case IDM_HQSEL_5:				case IDM_GRAPH:					SendMessage(ghWndHq, WM_COMMAND, wParam, 0L);				break;								case IDM_HQSEL_SET_1:				case IDM_HQSEL_SET_2:				case IDM_HQSEL_SET_3:				case IDM_HQSEL_SET_4:				case IDM_HQSEL_SET_5:					lpFarProc =MakeProcInstance((FARPROC)HqSelDlgProc, ghInstance);					DialogBoxParam(ghInstance, MAKEINTRESOURCE(IDD_HQSEL_SET),							hWnd, lpFarProc, (LPARAM)wParam);					FreeProcInstance(lpFarProc);				break;								case IDM_HQ_FLD_SEL:					lpFarProc =MakeProcInstance((FARPROC)HqFldSelDlgProc, ghInstance);					DialogBox(ghInstance, MAKEINTRESOURCE(IDD_FLDSEL),							hWnd, lpFarProc);					FreeProcInstance(lpFarProc);				break;								//case IDM_SORT_REFRESH:				//	UDP_Client_Hq01(HqPaintData.jys, TRUE);				//break;								case IDM_JY:					jy_running =TRUE;					Jy();					jy_running =FALSE;				break;				case IDM_MINIMIZE:					ShowWindow(hWnd, SW_MINIMIZE);				break;				case IDM_FX:				case IDM_FX_MACD:				case IDM_FX_DMI:				case IDM_FX_RSI:				case IDM_FX_PSY:				case IDM_FX_VR:				case IDM_FX_OBV:				case IDM_FX_BIAS:				case IDM_FX_WR:				case IDM_FX_KDJ:					for(i=IDM_FX_MACD;i<=IDM_FX_KDJ;i++)					{                    	if(GetMenuState(ghMenuMain, i, MF_BYCOMMAND)&MF_CHECKED)                             break;					}					if((unsigned int)i!= wParam)					{						CheckMenuItem(ghMenuMain, i, MF_BYCOMMAND|MF_UNCHECKED);						CheckMenuItem(ghMenuMain, wParam, MF_BYCOMMAND|MF_CHECKED);						if(i<=IDM_FX_KDJ) Fx->type =i;						else Fx->type =IDM_FX_MACD;					}					Fx->IsDataOk=FALSE;				    SendMessage(ghWndHq,WM_KEYDOWN,VK_F9,0L);				break;				case IDM_FX_5:				case IDM_FX_15:				case IDM_FX_30:				case IDM_FX_60:				case IDM_FX_DAY:				case IDM_FX_WEEK:				case IDM_FX_MONTH:					for(i=0;i<MONTH+1;i++)						if(RANGE_MENU[i]==wParam) break;					if(i<MONTH+1)					{						CheckMenuItem(ghMenuMain, wParam, MF_BYCOMMAND|MF_CHECKED);						CheckMenuItem(ghMenuMain,RANGE_MENU[Fx->range], MF_BYCOMMAND|MF_UNCHECKED);						Fx->range =i;					}					if(IsWindowVisible(ghWndFx))					{						Fx->IsDataOk=FALSE;						InvalidateRect(ghWndFx, NULL, TRUE);					}				break;								case IDM_NEWS:				     SendMessage(ghWndHq,WM_KEYDOWN,VK_F12,0L);				break;				case IDM_HELP:				     SendMessage(ghWndHq,WM_KEYDOWN,VK_F1,0L);				break;								case IDM_SZDP:					SendMessage(ghWndHq, WM_COMMAND, IDM_GRAPH, 3L);				break;				case IDM_SHDP:				    SendMessage(ghWndHq, WM_COMMAND, IDM_GRAPH, 4L);				break;				case IDM_GGXX:				     SendMessage(ghWndHq,WM_KEYDOWN,VK_F3,0L);				break;				case IDM_EXIT:					SendMessage(hWnd, WM_CLOSE, 0, 0L);				break;								default:					if(IsWindowVisible(ghWndHq))						SendMessage(ghWndHq, WM_COMMAND, wParam, lParam);					//else if(IsWindowVisible(ghWndXlt))					//	SendMessage(ghWndXlt, WM_COMMAND, wParam, lParam);		    		else if(IsWindowVisible(ghWndFx))						SendMessage(ghWndFx ,WM_COMMAND, wParam, lParam);				break;			}		break;	}		return DefWindowProc(hWnd, message, wParam, lParam);}LRESULT CALLBACK HqSelDlgProc(HWND hDlg, UINT message,						WPARAM wParam, LPARAM lParam){	int i, k;	char tmp[256];	static int SelNum;	DWORD dw;	HWND hctl;	int sel_num[MAX_HQSEL_REC_COUNT+1];	LPSTR tok;		switch(message)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;			SendMessage(hDlg,WM_USER+1,wParam,lParam);		return TRUE;			case WM_USER+1:			SelNum =(int)lParam-IDM_HQSEL_SET_1;						if(SelNum >=5)			{				EndDialog(hDlg, 0);				return FALSE;			}			k =0;			if(HqSelData[SelNum].recCount <=0)				HqSelData[SelNum].jys =HqPaintData.jys;			for(i =0; i<HqData[HqSelData[SelNum].jys].recCount; i++)			{				if(HqData[HqSelData[SelNum].jys].lpPreData[i].zqdm[0] ==0)					continue;				wsprintf(tmp, "%s-%d-%s",							(LPSTR)HqData[HqSelData[SelNum].jys].lpPreData[i].zqdm,							i, (LPSTR)HqData[HqSelData[SelNum].jys].lpPreData[i].zqmc);				if(HqSelData[SelNum].recCount)				{					if(HqSelData[SelNum].recNum[k] ==i && k<HqSelData[SelNum].recCount)					{						SendDlgItemMessage(hDlg, IDL_SEL, LB_ADDSTRING,								0, (LPARAM)(LPSTR)tmp);						k++;						continue;					}				}				SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_ADDSTRING,							0, (LPARAM)(LPSTR)tmp);			}		return TRUE;		case WM_COMMAND:			switch(wParam)			{				case IDC_ADD:					dw =SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_GETSELCOUNT, 0, 0L);					if(dw ==LB_ERR) break;					if((int)dw >MAX_HQSEL_REC_COUNT)					{						wsprintf(tmp, "最大可选数量不能超过%d", MAX_HQSEL_REC_COUNT);						ErrMsg(hDlg, tmp);						break;					}					if(SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_GETSELITEMS, (int)dw,										(LPARAM)(int FAR *)&sel_num[0]) ==LB_ERR)						break;										for(i =0; i<(int)dw; i++)					{						if(SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_GETTEXT, sel_num[i],							(LPARAM)(LPSTR)tmp) ==LB_ERR)						{							ErrMsg(hDlg, "Error LB_GETTEXT");							break;						}						SendDlgItemMessage(hDlg, IDL_SEL, LB_ADDSTRING, i,							(LPARAM)(LPSTR)tmp);					}					for(i =(int)dw -1; i>=0; i--)						SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_DELETESTRING, sel_num[i], 0L);										hctl =GetDlgItem(hDlg, IDOK);					EnableWindow(hctl, TRUE);				break;			    			    case IDC_DEL:					dw =SendDlgItemMessage(hDlg, IDL_SEL, LB_GETSELCOUNT, 0, 0L);					if(dw ==LB_ERR) break;					if(SendDlgItemMessage(hDlg, IDL_SEL, LB_GETSELITEMS, (int)dw,										(LPARAM)(int FAR *)&sel_num[0]) ==LB_ERR)						break;										for(i =0; i<(int)dw; i++)					{						if(SendDlgItemMessage(hDlg, IDL_SEL, LB_GETTEXT, sel_num[i],							(LPARAM)(LPSTR)tmp) ==LB_ERR)						{							ErrMsg(hDlg, "Error LB_GETTEXT");							break;						}						SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_ADDSTRING, i,							(LPARAM)(LPSTR)tmp);					}					for(i =(int)dw -1; i>=0; i--)						SendDlgItemMessage(hDlg, IDL_SEL, LB_DELETESTRING, sel_num[i], 0L);										hctl =GetDlgItem(hDlg, IDOK);					EnableWindow(hctl, TRUE);				break;			    				case IDOK:					k =(int)SendDlgItemMessage(hDlg, IDL_SEL, LB_GETCOUNT, 0, 0L);					if(k >MAX_HQSEL_REC_COUNT)					{						wsprintf(tmp, "最大可选数量不能超过%d", MAX_HQSEL_REC_COUNT);						ErrMsg(hDlg, tmp);						break;					}										for(i =0; i<k; i++)					{						if(SendDlgItemMessage(hDlg, IDL_SEL, LB_GETTEXT, i,								(LPARAM)(LPSTR)tmp) ==LB_ERR)						{							ErrMsg(hDlg, "get list text failed!");							break;						}						tok =strtok(tmp, "-");						if(!tok)							break;						else tok =strtok(NULL, "-");						if(!tok) break;						HqSelData[SelNum].recNum[i] =atoi(tok);					}					HqSelData[SelNum].recCount =i;					if(HqPaintData.type ==SelNum+2)						SendMessage(ghWndHq, WM_HQSEL_RESET, SelNum+2, 0L);				case IDCANCEL:					EndDialog(hDlg, 0);					ghDlgJy =NULL;				break;			break;		}	}		return FALSE;} LRESULT CALLBACK HqFldSelDlgProc(HWND hDlg, UINT message,						WPARAM wParam, LPARAM lParam){	int i, j;	char tmp[256];	DWORD dw;	HWND hctl;	LPSTR tok;		switch(message)	{		case WM_INITDIALOG:			ghDlgJy =hDlg;			for(i =0; i<HqPaintData.fldCount; i++)			{				wsprintf(tmp, "%d-%s", HqPaintData.fldNum[i],						HqTitles[HqPaintData.fldNum[i]]);				SendDlgItemMessage(hDlg, IDL_SEL, LB_ADDSTRING,					0, (LPARAM)(LPSTR)tmp);			}			for(i =0; i<HQ_FLDS_COUNT+1; i++)			{				wsprintf(tmp, "%d-%s", i, HqTitles[i]);				for(j =0; j<HqPaintData.fldCount; j++)				{					if(HqPaintData.fldNum[j] ==i)						break;				}				if(j ==HqPaintData.fldCount)					SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_ADDSTRING,						0, (LPARAM)(LPSTR)tmp);			}		return TRUE;				/*case WM_CTLCOLOR:			SetBkMode((HDC)wParam, TRANSPARENT);			if(HIWORD(lParam) == CTLCOLOR_LISTBOX)					return (LRESULT)DrawChild((HDC)wParam, (HWND)LOWORD(lParam));			return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH);		break;			case WM_NCACTIVATE:		if(WinVer >3) break;		DrawDlgFrame(hDlg, (BOOL)wParam, 1);	return TRUE;	case WM_NCPAINT:		if(WinVer >3) break;		DrawDlgFrame(hDlg, -1, 0);	return TRUE;       */		case WM_COMMAND:			switch(wParam)			{				case IDC_ADD:					dw =SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_GETCURSEL, 0, 0L);					if(dw ==LB_ERR) break;					i =(int)dw;					if(SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_GETTEXT, i,							(LPARAM)(LPSTR)tmp) ==LB_ERR)					{						ErrMsg(hDlg, "Error LB_GETTEXT");						break;					}					SendDlgItemMessage(hDlg, IDL_SEL, LB_ADDSTRING, i,						(LPARAM)(LPSTR)tmp);										SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_DELETESTRING, i, 0L);										hctl =GetDlgItem(hDlg, IDOK);					EnableWindow(hctl, TRUE);				break;			    			    case IDC_DEL:					dw =SendDlgItemMessage(hDlg, IDL_SEL, LB_GETCURSEL, 0, 0L);					if(dw ==LB_ERR) break;					i =(int)dw;					if(SendDlgItemMessage(hDlg, IDL_SEL, LB_GETTEXT, i,							(LPARAM)(LPSTR)tmp) ==LB_ERR)					{						ErrMsg(hDlg, "Error LB_GETTEXT");						break;					}					SendDlgItemMessage(hDlg, IDL_NOTSEL, LB_ADDSTRING, i,							(LPARAM)(LPSTR)tmp);					SendDlgItemMessage(hDlg, IDL_SEL, LB_DELETESTRING, i, 0L);										hctl =GetDlgItem(hDlg, IDOK);					EnableWindow(hctl, TRUE);				break;			    				case IDOK:					j =(int)SendDlgItemMessage(hDlg, IDL_SEL, LB_GETCOUNT, 0, 0L);										for(i =0; i<j; i++)					{						if(SendDlgItemMessage(hDlg, IDL_SEL, LB_GETTEXT, i,								(LPARAM)(LPSTR)tmp) ==LB_ERR)						{							ErrMsg(hDlg, "get list text failed!");							break;						}						tok =strtok(tmp, "-");						if(!tok) break;						HqPaintData.fldNum[i] =atoi(tok);					}					HqPaintData.fldCount =i;					if(IsWindowVisible(ghWndHq))						SendMessage(ghWndHq, WM_USER +1, 0, 0L);				case IDCANCEL:					EndDialog(hDlg, 0);					ghDlgJy =NULL;				break;			break;		}	}		return FALSE;}extern void WriteMsg(LPSTR);BOOL ErrMsg(HWND hWnd, LPSTR msg){	char tmp[256];	HWND hwnd;			WriteMsg(msg);	if(strlen(msg)>=250) *(msg+250) =0;	wsprintf(tmp, "错误: %s", msg);	if(ghDlgJy) hwnd =ghDlgJy;	else if(hwnd ==NULL) hwnd =ghWndMain;	else hwnd =hWnd;	MessageBox(hwnd, tmp, APPNAME, MB_OK|MB_ICONSTOP);	return FALSE;}BOOL GetInitString(char *Entry, char *Item, char *buf){	GetPrivateProfileString(Entry, Item, "", buf, 256, "st_cl.ini");	if(*buf ==0) return FALSE;	return TRUE;}BOOL PutInitString(char *Entry, char *Item, char *buf){	return WritePrivateProfileString(Entry, Item, buf, "st_cl.ini");}int CheckTime(BOOL fRead){	char tmp[15];	LPSTR tok;	int tim, jys;	static int recNum =0;	BOOL fret =FALSE;		_strtime(tmp);	tok =strtok(tmp, ":");	tim =atoi(tok)*60;	tim +=atoi(strtok(NULL, ":"));	tim -=1;	for(jys =0; jys <2; jys++)	{		if(tim <HqTime[jys].am_min_start				|| tim >HqTime[jys].pm_min_start+HqTime[jys].pm_min_count				|| (tim <HqTime[jys].pm_min_start 					&& tim >HqTime[jys].am_min_start+HqTime[jys].am_min_count))		{			//if(HqTime[jys].fRunning ==TRUE)				//HqTime[jys].fRunning =FALSE;		}		else if(HqTime[jys].fRunning ==FALSE)		{			HqTime[jys].fRunning =TRUE;     			if(fRead)			{			    //if(!gfConnecting&&gfOnLine)			    //{				//	if(UDP_Send_Hq00(0, TRUE, FALSE, FALSE, HqPaintData.curRecCount, &recNum)<0)				//	{				//		ErrMsg(ghWndMain, "UDP_Send_Hq00 failed");				//		DestroyWindow(ghWndMain);				//		return FALSE;				//	}				//}				fret =TRUE;			}		}	}	return fret;}int SaveSet(void){	int i, j;	char tmp[6000], tmp1[256];		for(i =0; i<5; i++)	{		sprintf(tmp, "%d,%d", HqSelData[i].jys, HqSelData[i].recCount);		for(j =0; j<HqSelData[i].recCount; j++)		{			//HqData[HqSelData[i].jys].lpPreData[j].zqdm			//sprintf(&tmp[strlen(tmp)], ",%d", HqSelData[i].recNum[j]);			sprintf(&tmp[strlen(tmp)], ",%s", HqData[HqSelData[i].jys].lpPreData[HqSelData[i].recNum[j]].zqdm);		}		sprintf(tmp1, "HQSEL%d", i);		PutInitString("HQSEL", tmp1, tmp);	}	sprintf(tmp, "%d", HqPaintData.fldCount);	for(i =0; i<HqPaintData.fldCount; i++)	{		sprintf(&tmp[strlen(tmp)], ",%d", HqPaintData.fldNum[i]);	}	PutInitString("HQ", "FLDS", tmp);		return 0;}int GetSet(void){	int i ;//, j;	char tmp[1000]; //, 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;

⌨️ 快捷键说明

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