📄 jy_cl.c
字号:
break; case IDCANCEL: IsCanPwdChg =FALSE; EndDialog(hDlg, 0); ghDlgJy =NULL; break; } break; } return FALSE;}LRESULT CALLBACK ChgPwdDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){ static JY_ASK_CHGPWD ChgPwdData; static JY_ANS_CHGPWD ChgPwdRes; PAINTSTRUCT ps; static int state =0; char tmp[60]; HWND hctl; static HBRUSH hBrush; int ret; switch(msg) { case WM_INITDIALOG: ghDlgJy =hDlg; memset(&ChgPwdData, 0, sizeof(ChgPwdData)); memset(&ChgPwdRes, 0, sizeof(ChgPwdRes)); ChgPwdData.jys =curChkUsrRes.jys; ChgPwdData.userId =curChkUsrRes.userId; strcpy(ChgPwdData.gddm, curChkUsrRes.gddm); state =0; gnTimers =0; SendDlgItemMessage(hDlg, IDC_NEWPWD, EM_LIMITTEXT, MAX_JYMM_SIZE, 0L); CenterWindow(hDlg); ChgPwdData.newPwd[0] =0; hBrush=CreateSolidBrush(RGB(0,255,255)); SetTimer(hDlg, 1, 1000, NULL); return TRUE; case WM_CTLCOLOR: SetBkMode((HDC)wParam, TRANSPARENT); switch(HIWORD(lParam)) { case CTLCOLOR_DLG: return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH); case CTLCOLOR_EDIT: return (LRESULT)hBrush; } return TRUE; 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: if(state >=2) break; //if(ChgPwdData.newPwd[0] !=0) break; hctl =GetDlgItem(hDlg, IDC_NEWPWD); SetFocus(hctl); GetDlgItemText(hDlg, IDC_NEWPWD, tmp, sizeof(tmp)); if(state ==0) { if(tmp[0] ==0) break; strcpy(ChgPwdData.newPwd, tmp); SetDlgItemText(hDlg, IDC_COMMENT, "重输一次"); SetDlgItemText(hDlg, IDC_NEWPWD, ""); state =1; break; } if(strcmp(ChgPwdData.newPwd, tmp)) { ErrMsg(hDlg, "两次输入要相同!\n请重新输入"); SetDlgItemText(hDlg, IDC_COMMENT, "新密码"); SetDlgItemText(hDlg, IDC_NEWPWD, ""); state =0; break; } state =2; UDP_Jy_ChgPwd(&ChgPwdData, &ChgPwdRes); break; case IDCANCEL: udpread_stop =TRUE; KillTimer(hDlg, 1); EndDialog(hDlg, 0); ghDlgJy =NULL; break; } break; case WM_JY_RES: ret=ChgPwdRes.flag; if(ret!=ANS_SUCC) { 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,"请您注意,未知错误"); } } else { strcpy(tmp,"您的密码已修改!"); } MessageBox(ghDlgJy, tmp,"修改密码", MB_OK); KillTimer(hDlg, 1); ghDlgJy =NULL; DeleteObject(hBrush); EndDialog(hDlg, 0); break; } return FALSE;}LRESULT CALLBACK BuySellDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){ static JY_ASK_BUYSELL BuySellData; static JY_ANS_BUYSELL BuySellRes; int i, k,ret; DWORD dw; char tmp[100], tmp1[100]; PAINTSTRUCT ps; HWND hctl; LPDRAWITEMSTRUCT lpdis; static int state =0; int idFocus; static HBRUSH hBuyBrush,hSellBrush; RECT rc; HDC hdc; switch(msg) { case WM_INITDIALOG: gnTimers =0; ghDlgJy =hDlg; memset(&BuySellData, 0, sizeof(BuySellData)); memset(&BuySellRes, 0, sizeof(BuySellRes)); BuySellData.jys =curChkUsrRes.jys; strcpy(BuySellData.gddm, curChkUsrRes.gddm); if(BuySellData.jys==0) strcpy(tmp,"深圳A股"); if(BuySellData.jys==1) strcpy(tmp,"上海A股"); BuySellData.wtgs =0; BuySellData.wtjg =0; BuySellData.bs =(char)lParam; BuySellData.userId =curChkUsrRes.userId; if(BuySellData.bs =='B') { SetDlgItemText(hDlg, IDOK, "买入"); strcat(tmp,"股票买入"); } else { SetDlgItemText(hDlg, IDOK, "卖出"); strcat(tmp,"股票卖出"); } SetWindowText(hDlg,tmp); SendDlgItemMessage(hDlg, IDC_ZQDM, CB_LIMITTEXT, MAX_ZQDM_SIZE, 0L); SendDlgItemMessage(hDlg, IDC_JG, EM_LIMITTEXT, 7, 0L); SendDlgItemMessage(hDlg, IDC_SL, EM_LIMITTEXT, 8, 0L); i =HqPaintData.sortData.key[HqPaintData.curRecNum+HqPaintData.curSelRec]; strcpy(tmp, HqData[HqPaintData.jys].lpPreData[i].zqmc); k =-1; for(i =0; i<HqData[BuySellData.jys].recCount; i++) { //if(!IsZsRec(BuySellData.jys, i)) //{ SendDlgItemMessage(hDlg, IDC_ZQDM, CB_ADDSTRING, 0, (LPARAM)(LPSTR)HqData[BuySellData.jys].lpPreData[i].zqmc); if(!strcmp(tmp, HqData[BuySellData.jys].lpPreData[i].zqmc)) k =i; //} } SendDlgItemMessage(hDlg, IDC_ZQDM, CB_SETCURSEL, k, 0L); gnTimers =0; state =0; SetTimer(hDlg, 1, 1000, NULL); hBuyBrush=CreateSolidBrush(RGB(255,0,255)); hSellBrush=CreateSolidBrush(RGB(0,255,255)); SetDlgItemText(hDlg,IDC_STATIC,"证券代码"); SetDlgItemText(hDlg,IDC_STATIC2,"委托数量"); SetDlgItemText(hDlg,IDC_STATIC1,"委托价格"); CenterWindow(hDlg); return TRUE; case WM_CTLCOLOR: SetBkMode((HDC)wParam, TRANSPARENT); switch(HIWORD(lParam)) { case CTLCOLOR_STATIC: case CTLCOLOR_DLG: if(BuySellData.bs =='B') return (LRESULT)hBuyBrush; else return (LRESULT)hSellBrush; case CTLCOLOR_MSGBOX: return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH); case CTLCOLOR_LISTBOX: case CTLCOLOR_EDIT: return (LRESULT)(HBRUSH)NULL; } return (LRESULT)NULL; 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); EndPaint(hDlg, &ps); break; case WM_TIMER: if(gnTimers++ >300) 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(BuySellData.wtgs !=0 && BuySellData.wtjg !=0) break; GetDlgItemText(hDlg, IDC_ZQDM, tmp, sizeof(tmp)); hctl =GetDlgItem(hDlg, IDC_ZQDM); if(tmp[0] ==0) { SetFocus(hctl); break; } for(i =0; i<HqData[BuySellData.jys].recCount; i++) if(!strcmp(HqData[BuySellData.jys].lpPreData[i].zqdm, tmp)) break; if(i < HqData[BuySellData.jys].recCount) { SendDlgItemMessage(hDlg, IDC_ZQDM, CB_SETCURSEL, i, 0L); strcpy(BuySellData.gpdm, HqData[BuySellData.jys].lpPreData[i].zqdm); } else { dw =SendDlgItemMessage(hDlg, IDC_ZQDM, CB_GETCURSEL, 0, 0L); if(dw ==CB_ERR) { SetDlgItemText(hDlg, IDC_ZQDM, ""); SetFocus(hctl); break; } i =(int)dw; SendDlgItemMessage(hDlg, IDC_ZQDM, CB_GETLBTEXT, i, (LPARAM)(LPSTR)tmp1); if(!strcmp(tmp1, tmp)) strcpy(BuySellData.gpdm, HqData[BuySellData.jys].lpPreData[i].zqdm); else { SetDlgItemText(hDlg, IDC_ZQDM, ""); SetFocus(hctl); break; } } //if(state ==1) goto ACCEPT; //GetDlgItemText(hDlg, IDC_JG, tmp, sizeof(tmp)); hctl =GetDlgItem(hDlg, IDC_JG); SetFocus(hctl); if(idFocus !=IDOK && idFocus !=IDC_JG && idFocus !=IDC_SL) { if(IsWindowVisible(ghWndHq)) { for(k =0; k<HqPaintData.recCount; k++) { if(IsZsRec(HqPaintData.jys, k)) { i++; continue; } if(HqPaintData.sortData.key[k] ==i) break; } if(k <HqPaintData.recCount) { HqPaintData.curSelRec =0; HqPaintData.curRecNum =k; SendMessage(ghWndHq, WM_COMMAND, IDM_GRAPH, 0L); } } if(!IsWindowVisible(ghWndHq)) { if(tmp[0]<'0'||tmp[0]>'9') { if(i<HqData[BuySellData.jys].recCount&&i>0) strcpy(tmp,HqData[BuySellData.jys].lpPreData[i].zqdm); } SetWindowText(hWndInput, &tmp[0]); if(tmp[0]!=0) { SendMessage(ghWndXlt, WM_KEYDOWN, VK_RETURN, 0L); InvalidateRect(ghWndXlt, NULL, TRUE); InvalidateRect(ghWndJlt, NULL, TRUE); InvalidateRect(ghWndMmp, NULL, TRUE); InvalidateRect(ghWndLitHq, NULL, TRUE); InvalidateRect(ghWndCj, NULL, TRUE); } } break; } if(state ==1) goto ACCEPT; GetDlgItemText(hDlg, IDC_JG, tmp, sizeof(tmp)); if(tmp[0] ==0) { SetFocus(hctl); break; } else { k =strlen(tmp); for(i =0; i<k; i++) { if(!isdigit(tmp[i]) && tmp[i] !='.') { SetDlgItemText(hDlg, IDC_JG, ""); SetFocus(hctl); return FALSE; } } } BuySellData.wtjg =(long)(_atold(tmp)*100); hctl =GetDlgItem(hDlg, IDC_SL); SetFocus(hctl); if(idFocus ==IDC_JG) break; GetDlgItemText(hDlg, IDC_SL, tmp, sizeof(tmp)); if(tmp[0] ==0) { SetFocus(hctl); break; } else { k =strlen(tmp); /* if(k >8) { tmp[8] =0; SetDlgItemText(hDlg, IDC_SL, tmp); SendDlgItemMessage(hDlg, IDC_SL, EM_SETSEL, 0, MAKELONG(0, -1)); SetFocus(hctl); break; } */ for(i =0; i<k; i++) { if(!isdigit(tmp[i])) { SetDlgItemText(hDlg, IDC_SL, ""); //SetFocus(hctl); return FALSE; } } } BuySellData.wtgs =atol(tmp); ACCEPT: if(state==0) state =1; else state++; hctl =GetDlgItem(hDlg, IDOK); SetFocus(hctl); if(state ==2) { state =0; GetClientRect(hDlg, &rc); EnableWindow(hDlg, FALSE); k=UDP_Jy_BuySell(&BuySellData, &BuySellRes); hdc =GetDC(hDlg); SetBkColor(hdc,RGB(255,0,0)); SelectObject(hdc,GetStockObject(WHITE_PEN)); if(k>0) strcpy(&tmp[0],"您的委托已传到了主机,请等待"); if(k==0) strcpy(&tmp[0],"已经收市,不能委托"); if(k<0) strcpy(&tmp[0],"您的委托未传到了主机,请检查通讯情况"); TextOut(hdc,rc.left +10,rc.bottom -20,tmp,strlen(tmp)); ReleaseDC(hDlg,hdc); } break; case IDCANCEL: udpread_stop =TRUE; KillTimer(hDlg, 1); ghDlgJy =NULL; DeleteObject(hBuyBrush); DeleteObject(hSellBrush); EndDialog(hDlg, 0); break; } break; case WM_JY_RES: ret=BuySellRes.flag; if(ret!=ANS_SUCC) { 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 '7': strcpy(tmp,"请您注意,资金不足!"); break; case '8': strcpy(tmp,"系统无法产生合同号码!"); case '9': strcpy(tmp,"请您注意,您已卖空!"); break; case 'A': strcpy(tmp,"请您注意,您已超时!"); break; case 'I': 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(ghDlgJy, tmp,"股票买卖", MB_OK); } else { wsprintf(tmp, "委托已进入电脑系统! 合同号码是%s", BuySellRes.hthm); MessageBox(hDlg, tmp, "股票买卖", MB_OK);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -