www.pudn.com > inet_stock.zip > ENV.C


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "resource.h"
#include "appmain.h"
#include "hq.h"
#include "hq_tcp.h"
#include "hq_cl.h"
#include "jy_cl.h"
#include "jy_tcp.h"
#include "msg.h"
#include "pctcp.h"
#include "fx.h"
       
extern BOOL IsZsRec(int jys, int recNum);
extern BOOL ErrMsg(HWND, LPSTR);
extern char szDataPath[128];

LRESULT CALLBACK SetHqEnvProc(HWND hDlg, UINT msg,
	WPARAM wParam, LPARAM lParam);


extern void Ip_Commit_Pack(int len,char *buff);

#define		SET_SUCC		0
#define		SET_NO_THIS_ID	-1
#define		SET_PWD_ERROR	-2
#define		SET_DATA_ERROR	-3

#define 	DATA_START_SIGN -16

#define		MAX_UCODE_SIZE	6
#define		MAX_PWD_SIZE	6

typedef struct tag_TCP_FRAME_HQ_ENV
{
    char sign;
    int len;
 	char head[6];
	char ucode[MAX_UCODE_SIZE];
	char pwd[MAX_PWD_SIZE];
	char newpwd[MAX_PWD_SIZE+1];
}TCP_FRAME_HQ_ENV;

int SetHqEnv(void)
{
	FARPROC lpDlgProc =NULL;

	lpDlgProc =MakeProcInstance((FARPROC)SetHqEnvProc, ghInstance);
	DialogBox(ghInstance, MAKEINTRESOURCE(IDD_ENV_HQ), ghWndMain,
				lpDlgProc);
	FreeProcInstance(lpDlgProc);
	return TRUE;	
}


LRESULT CALLBACK SetHqEnvProc(HWND hDlg, UINT msg,
					WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	char tmp[80];
	HWND hctl;
	int i,j;
	//int idFocus;
	//LPDRAWITEMSTRUCT lpdis;
	LOGFONT tmplf;	
	//static HBRUSH hBrush;	    
	//RECT rc;
	//HDC hDC;
	OFSTRUCT os;
	HANDLE hf;	
	TCP_FRAME_HQ_ENV TcpFrameHqEnv;
	CHOOSEFONT cf;
	STOCK_INFO_FRAME StockInfo;
		    
	switch(msg)
	{
		case WM_INITDIALOG:
			SendDlgItemMessage(hDlg, IDC_ENV_IP, EM_LIMITTEXT, 16, 0L);
			SendDlgItemMessage(hDlg, IDC_ENV_USEPWD, EM_LIMITTEXT, 6, 0L);
			SendDlgItemMessage(hDlg, IDC_ENV_NEWPWD, EM_LIMITTEXT, 6, 0L);
			
			GetInitString("NET", "HOST", tmp);
			SetDlgItemText(hDlg, IDC_ENV_IP, tmp);
			
			sprintf(tmp,"%d",ITEM_SPACE_X);
			SetDlgItemText(hDlg, IDC_ENV_SPACE, tmp);			
			sprintf(tmp,"%d",X0_TITLE);
			SetDlgItemText(hDlg, IDC_ENV_ZQMC, tmp);
			
            sprintf(tmp,"%d",Fx->range+1);
            SetDlgItemText(hDlg, IDC_ENV_PERI, tmp);
			CenterWindow(hDlg);
			//hBrush=CreateSolidBrush(RGB(0,255,255));
		return TRUE;
		
		case WM_PAINT:
			BeginPaint(hDlg, &ps);
			DrawFrame(ps.hdc, hDlg);
			
			//GetClientRect(hDlg, &rc);
			EndPaint(hDlg, &ps);
		break;
		case WM_COMMAND:
			switch(wParam)
			{
				case IDOK:
				   	GetDlgItemText(hDlg, IDC_ENV_IP, tmp,16);
					PutInitString("NET", "HOST", tmp);
				    
				    strncpy(TcpFrameHqEnv.ucode,UserID,6);
				    
                    GetDlgItemText(hDlg, IDC_ENV_USEPWD, tmp,7);
				    if(strlen(tmp)>0)
				    {
				    	strncpy(TcpFrameHqEnv.pwd,tmp,6);
				    }
				    
					GetDlgItemText(hDlg, IDC_ENV_NEWPWD, tmp,7);					
					if(strlen(tmp)>0)
					{        
						strncpy(TcpFrameHqEnv.newpwd,tmp,6);
					 	TcpFrameHqEnv.newpwd[MAX_PWD_SIZE] =0;

						TcpFrameHqEnv.sign =DATA_START_SIGN;
						TcpFrameHqEnv.len =sizeof(TCP_FRAME_HQ_ENV) -3;
					    strncpy(TcpFrameHqEnv.head,"SETENV",6); 
					 	
					 	GetDlgItemText(hDlg, IDC_ENV_PWDAGAIN, tmp,7);
					 	if(strncmp(tmp,TcpFrameHqEnv.newpwd,6)!=0)
					 	{               
					 	    MessageBox(hDlg, "两次输入的新密码不同","环境设置", MB_OK);
					 	    hctl =GetDlgItem(hDlg, IDC_ENV_PWDAGAIN);
							SetFocus(hctl);
							break;
					 	}
					 	else
					 	{
					 		Ip_Commit_Pack(sizeof(TCP_FRAME_HQ_ENV),(char *)&TcpFrameHqEnv);
					 		Msg("您的修改行情用户密码的请求已发出",MSG_VERT);		 	
					 	}
					}   
					
					GetDlgItemText(hDlg, IDC_ENV_SPACE, tmp,10);
					i =atoi(tmp);
					GetDlgItemText(hDlg, IDC_ENV_ZQMC, tmp,10);
					j =atoi(tmp);

					if((unsigned short)i!=ITEM_SPACE_X||(unsigned short)j!=X0_TITLE)
					{
						if(i>=1 &&i<=20)
						{
							ITEM_SPACE_X =i;
							sprintf(tmp,"%d",ITEM_SPACE_X);
							PutInitString("HQ", "ITEM_SPACE_X", tmp);
						}
						if(j>=40 &&j<=90)
						{
							X0_TITLE =j;
							sprintf(tmp,"%d",X0_TITLE);
							PutInitString("HQ", "X0_TITLE", tmp);
						}
						PostMessage(ghWndHq,WM_USER+5,0,0L);
						InvalidateRect(ghWndHq, NULL, TRUE);
					} 
					GetDlgItemText(hDlg, IDC_ENV_PERI, tmp,10);
            		i=atoi(tmp);
            		if(i>0&&i<8)
            		{   
            			i--;
						CheckMenuItem(ghMenuMain,RANGE_MENU[Fx->range], MF_BYCOMMAND|MF_UNCHECKED);
						CheckMenuItem(ghMenuMain,RANGE_MENU[i], MF_BYCOMMAND|MF_CHECKED);
            			Fx->range =i;
            			sprintf(tmp,"%d",i);
            			PutInitString("FX", "RANGE", tmp);
            		}
					EndDialog(hDlg, 1);
				break;
				case IDCANCEL:
					EndDialog(hDlg, 1);
				break;
				case IDC_FONT:
					memset(&cf, 0, sizeof(CHOOSEFONT));
					cf.lStructSize = sizeof(CHOOSEFONT);
					cf.hwndOwner = ghWndMain;
					cf.lpLogFont = &tmplf;
					cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
					cf.rgbColors = RGB(0, 255, 255); /* light blue */
					cf.nFontType = SCREEN_FONTTYPE;					
					if(ChooseFont(&cf))
					{   
						memcpy(&lf,&tmplf,sizeof(LOGFONT));
						strcpy(tmp,"font.dat");
						hf =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_WRITE);
						_lwrite(hf,&lf,sizeof(LOGFONT));
						_lclose(hf);
						PostMessage(ghWndHq,WM_USER+1,0,0L);
						InvalidateRect(ghWndHq, NULL, TRUE);
					}
				break;
				case IDC_SZ_MINUTE:
				    StockInfo.type=FILE_SZ_ALL_MINUTE;
				    strcpy(StockInfo.name,"");
			    	UDP_Send_Stock_Info(&StockInfo);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
			    	EnableWindow(hctl, FALSE);			    	
			    	hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SH_DAY);
			    	EnableWindow(hctl, FALSE);				
			    break;
				case IDC_SZ_DAY:
				    StockInfo.type=FILE_SZ_ALL_DAY;
				    strcpy(StockInfo.name,"");
			    	UDP_Send_Stock_Info(&StockInfo);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
			    	EnableWindow(hctl, FALSE);			    	
			    	hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SH_DAY);
			    	EnableWindow(hctl, FALSE);				
				break;
				case IDC_SH_MINUTE:
				    StockInfo.type=FILE_SH_ALL_MINUTE;
				    strcpy(StockInfo.name,"");
			    	UDP_Send_Stock_Info(&StockInfo);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
			    	EnableWindow(hctl, FALSE);			    	
			    	hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SH_DAY);
			    	EnableWindow(hctl, FALSE);				
				break;
				case IDC_SH_DAY:
				    StockInfo.type=FILE_SH_ALL_DAY;
				    strcpy(StockInfo.name,"");
			    	UDP_Send_Stock_Info(&StockInfo);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SZ_DAY);
			    	EnableWindow(hctl, FALSE);			    	
			    	hctl =GetDlgItem(hDlg, IDC_SH_MINUTE);
			    	EnableWindow(hctl, FALSE);
			    	hctl =GetDlgItem(hDlg, IDC_SH_DAY);
			    	EnableWindow(hctl, FALSE);			    	
				break;
			}
		break;
	}
	return FALSE;
}