#include #include #include #include "edtwnd.h" #include "gensen.h" #include "hoken.h" //エディトウィンドウ作成 void EdtWnd(HINSTANCE hInst, HWND hWnd) { hWndEdt1 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 285, 30, 120, 24, hWnd, (HMENU)ID_EDIT1, hInst, NULL); hWndEdt2 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 285, 54, 120, 24, hWnd, (HMENU)ID_EDIT2, hInst, NULL); hWndEdt3 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 285, 82, 120, 24, hWnd, (HMENU)ID_EDIT3, hInst, NULL); hWndEdt4 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 285, 110, 120, 24, hWnd, (HMENU)ID_EDIT4, hInst, NULL); hWndEdt5 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 285, 134, 120, 24, hWnd, (HMENU)ID_EDIT5, hInst, NULL); hWndEdt6 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 285, 158, 120, 24, hWnd, (HMENU)ID_EDIT6, hInst, NULL); hWndEdt7 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 285, 182, 120, 24, hWnd, (HMENU)ID_EDIT7, hInst, NULL); hWndEdt8 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 285, 206, 120, 24, hWnd, (HMENU)ID_EDIT8, hInst, NULL); hWndEdt9 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 285, 234, 120, 24, hWnd, (HMENU)ID_EDIT9, hInst, NULL); hWndEdt10 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 285, 262, 120, 24, hWnd, (HMENU)ID_EDIT10, hInst, NULL); hWndEdt11 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 410, 30, 120, 24, hWnd, (HMENU)ID_EDIT11, hInst, NULL); hWndEdt12 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 110, 120, 24, hWnd, (HMENU)ID_EDIT12, hInst, NULL); hWndEdt13 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 134, 120, 24, hWnd, (HMENU)ID_EDIT13, hInst, NULL); hWndEdt14 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 158, 120, 24, hWnd, (HMENU)ID_EDIT14, hInst, NULL); hWndEdt15 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 182, 120, 24, hWnd, (HMENU)ID_EDIT15, hInst, NULL); hWndEdt16 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 206, 120, 24, hWnd, (HMENU)ID_EDIT16, hInst, NULL); hWndEdt17 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 234, 120, 24, hWnd, (HMENU)ID_EDIT17, hInst, NULL); hWndEdt18 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT|ES_READONLY, 410, 262, 120, 24, hWnd, (HMENU)ID_EDIT18, hInst, NULL); hWndEdt19 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_NUMBER|ES_RIGHT, 6, 270, 120, 24, hWnd, (HMENU)ID_EDIT19, hInst, NULL); } //ウィンドウ破棄 void DesEdtWnd() { DestroyWindow(hWndEdt1); DestroyWindow(hWndEdt2); DestroyWindow(hWndEdt3); DestroyWindow(hWndEdt4); DestroyWindow(hWndEdt5); DestroyWindow(hWndEdt6); DestroyWindow(hWndEdt7); DestroyWindow(hWndEdt8); DestroyWindow(hWndEdt9); DestroyWindow(hWndEdt10); DestroyWindow(hWndEdt11); DestroyWindow(hWndEdt12); DestroyWindow(hWndEdt13); DestroyWindow(hWndEdt14); DestroyWindow(hWndEdt15); DestroyWindow(hWndEdt16); DestroyWindow(hWndEdt17); DestroyWindow(hWndEdt18); DestroyWindow(hWndEdt19); } //エティト初期化 void SetEdtText() { //入力制限 SendMessage(hWndEdt1, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt2, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt4, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt5, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt6, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt7, EM_SETLIMITTEXT, (WPARAM)8, 0); SendMessage(hWndEdt11, EM_SETLIMITTEXT, (WPARAM)8, 0); //初期値 SendMessage(hWndEdt1, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt2, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt3, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt4, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt5, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt6, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt7, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt8, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt9, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt10, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt11, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt12, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt13, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt14, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt15, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt16, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt17, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt18, WM_SETTEXT, 0, (LPARAM)"0"); SendMessage(hWndEdt19, WM_SETTEXT, 0, (LPARAM)"0"); } //フォント指定 void FntEdtWnd() { SendMessage(hWndEdt1, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt2, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt3, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt4, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt5, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt6, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt7, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt8, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt9, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt10, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt11, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt12, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt13, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt14, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt15, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt16, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt17, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt18, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); SendMessage(hWndEdt19, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); } /*テキスト取得 *0:成功 *1:失敗 *エディトウィンドウ==hEnd */ int GetEdtText(HWND hWnd) { char buf[8]; char *endptr; long v; memset(buf, '\0', sizeof(buf)); SendMessage(hWnd, WM_GETTEXT, (WPARAM)8, (LPARAM)buf); v = (long)strtol(buf, &endptr, 10); if (endptr == &buf[0]) { SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)"0"); return 1; } else { return 0; } } /*給与エディト内の数値を計算する *GetEdtWnd()でチェック後に呼び出すこと *給与エディトウィンドウがフォーカスを失ったとき呼び出す */ void CalcEdtWndA() { char s1[8], s2[8], s3[8], s4[8], s5[8], s6[8], s7[8], s8[8], s9[8], s10[8]; long v[10]; //配列初期化 memset(s1, '\0', sizeof(s1)); memset(s2, '\0', sizeof(s2)); memset(s3, '\0', sizeof(s3)); memset(s4, '\0', sizeof(s4)); memset(s5, '\0', sizeof(s5)); memset(s6, '\0', sizeof(s6)); memset(s7, '\0', sizeof(s7)); memset(s8, '\0', sizeof(s8)); memset(s9, '\0', sizeof(s9)); memset(s10, '\0', sizeof(s10)); memset(v, 0, sizeof(v)); //エディトウィンドウの値取得 SendMessage(hWndEdt1, WM_GETTEXT, (WPARAM)8, (LPARAM)s1); SendMessage(hWndEdt2, WM_GETTEXT, (WPARAM)8, (LPARAM)s2); SendMessage(hWndEdt3, WM_GETTEXT, (WPARAM)8, (LPARAM)s3); SendMessage(hWndEdt4, WM_GETTEXT, (WPARAM)8, (LPARAM)s4); SendMessage(hWndEdt5, WM_GETTEXT, (WPARAM)8, (LPARAM)s5); SendMessage(hWndEdt6, WM_GETTEXT, (WPARAM)8, (LPARAM)s6); SendMessage(hWndEdt7, WM_GETTEXT, (WPARAM)8, (LPARAM)s7); SendMessage(hWndEdt8, WM_GETTEXT, (WPARAM)8, (LPARAM)s8); SendMessage(hWndEdt9, WM_GETTEXT, (WPARAM)8, (LPARAM)s9); SendMessage(hWndEdt10, WM_GETTEXT, (WPARAM)8, (LPARAM)s10); //数値に変換 v[0] = atol(s1); v[1] = atol(s2); v[2] = atol(s3); v[3] = atol(s4); v[4] = atol(s5); v[5] = atol(s6); v[6] = atol(s7); v[7] = atol(s8); v[8] = atol(s9); v[9] = atol(s10); //計算 v[2] = v[0] + v[1];//支給合計 v[8] = v[3] + v[4] + v[5] + v[6] + v[7];//控除合計 v[9] = v[2] - v[8];//差引支給 //文字列に変換 _ltoa(v[0], s1, 10); _ltoa(v[1], s2, 10); _ltoa(v[2], s3, 10); _ltoa(v[3], s4, 10); _ltoa(v[4], s5, 10); _ltoa(v[5], s6, 10); _ltoa(v[6], s7, 10); _ltoa(v[7], s8, 10); _ltoa(v[8], s9, 10); _ltoa(v[9], s10, 10); //エディトウィンドウに戻す SendMessage(hWndEdt1, WM_SETTEXT, 0, (LPARAM)s1); SendMessage(hWndEdt2, WM_SETTEXT, 0, (LPARAM)s2); SendMessage(hWndEdt3, WM_SETTEXT, 0, (LPARAM)s3); SendMessage(hWndEdt4, WM_SETTEXT, 0, (LPARAM)s4); SendMessage(hWndEdt5, WM_SETTEXT, 0, (LPARAM)s5); SendMessage(hWndEdt6, WM_SETTEXT, 0, (LPARAM)s6); SendMessage(hWndEdt7, WM_SETTEXT, 0, (LPARAM)s7); SendMessage(hWndEdt8, WM_SETTEXT, 0, (LPARAM)s8); SendMessage(hWndEdt9, WM_SETTEXT, 0, (LPARAM)s9); SendMessage(hWndEdt10, WM_SETTEXT, 0, (LPARAM)s10); } /*賞与エディト内の数値を計算する *GetEdtWnd()でチェック後に呼び出すこと *賞与エディトウィンドウがフォーカスを失ったとき呼び出す */ void CalcEdtWndB() { char s1[8], s2[8], s3[8], s4[8], s5[8], s6[8], s7[8], s8[8], s9[8]; long v[9]; //配列初期化 memset(s1, '\0', sizeof(s1)); memset(s2, '\0', sizeof(s2)); memset(s3, '\0', sizeof(s3)); memset(s4, '\0', sizeof(s4)); memset(s5, '\0', sizeof(s5)); memset(s6, '\0', sizeof(s6)); memset(s7, '\0', sizeof(s7)); memset(s8, '\0', sizeof(s8)); memset(s9, '\0', sizeof(s9)); memset(v, 0, sizeof(v)); //エディトウィンドウの値を取得 SendMessage(hWndEdt11, WM_GETTEXT, (WPARAM)8, (LPARAM)s1); SendMessage(hWndEdt12, WM_GETTEXT, (WPARAM)8, (LPARAM)s2); SendMessage(hWndEdt13, WM_GETTEXT, (WPARAM)8, (LPARAM)s3); SendMessage(hWndEdt14, WM_GETTEXT, (WPARAM)8, (LPARAM)s4); SendMessage(hWndEdt15, WM_GETTEXT, (WPARAM)8, (LPARAM)s5); SendMessage(hWndEdt16, WM_GETTEXT, (WPARAM)8, (LPARAM)s6); SendMessage(hWndEdt17, WM_GETTEXT, (WPARAM)8, (LPARAM)s7); SendMessage(hWndEdt18, WM_GETTEXT, (WPARAM)8, (LPARAM)s8); SendMessage(hWndEdt19, WM_GETTEXT, (WPARAM)8, (LPARAM)s9); //数値に変換 v[0] = atol(s1); v[1] = atol(s2); v[2] = atol(s3); v[3] = atol(s4); v[4] = atol(s5); v[5] = atol(s6); v[6] = atol(s7); v[7] = atol(s8); v[8] = atol(s9); //計算 v[6] = v[1] + v[2] + v[3] + v[4] + v[5];//控除合計 v[7] = v[0] - v[6];//差引支給 //文字列に変換 _ltoa(v[0], s1, 10); _ltoa(v[1], s2, 10); _ltoa(v[2], s3, 10); _ltoa(v[3], s4, 10); _ltoa(v[4], s5, 10); _ltoa(v[5], s6, 10); _ltoa(v[6], s7, 10); _ltoa(v[7], s8, 10); _ltoa(v[8], s9, 10); //エディトウィンドウに戻す SendMessage(hWndEdt11, WM_SETTEXT, 0, (LPARAM)s1); SendMessage(hWndEdt12, WM_SETTEXT, 0, (LPARAM)s2); SendMessage(hWndEdt13, WM_SETTEXT, 0, (LPARAM)s3); SendMessage(hWndEdt14, WM_SETTEXT, 0, (LPARAM)s4); SendMessage(hWndEdt15, WM_SETTEXT, 0, (LPARAM)s5); SendMessage(hWndEdt16, WM_SETTEXT, 0, (LPARAM)s6); SendMessage(hWndEdt17, WM_SETTEXT, 0, (LPARAM)s7); SendMessage(hWndEdt18, WM_SETTEXT, 0, (LPARAM)s8); } /*給与エディト内の税金等を計算する *計算ボタンから呼び出す */ void CalcEdtZeiA(HWND hChk2, HWND hOpt1, HWND hOpt3) { char s1[8], s2[8], s3[8], s4[8], s5[8], s6[8], s7[8], s8[8], s9[8], s10[8], s11[8]; long v[11], tmp; int nKubun, nRan; const int nKyuyo = 0; CHokenryo hk; CGensenZei gz; //配列初期化 memset(s1, '\0', sizeof(s1)); memset(s2, '\0', sizeof(s2)); memset(s3, '\0', sizeof(s3)); memset(s4, '\0', sizeof(s4)); memset(s5, '\0', sizeof(s5)); memset(s6, '\0', sizeof(s6)); memset(s7, '\0', sizeof(s7)); memset(s8, '\0', sizeof(s8)); memset(s9, '\0', sizeof(s9)); memset(s10, '\0', sizeof(s10)); memset(s11, '\0', sizeof(s11)); memset(v, 0, sizeof(v)); //エディトウィンドウの値取得 SendMessage(hWndEdt1, WM_GETTEXT, (WPARAM)8, (LPARAM)s1); SendMessage(hWndEdt2, WM_GETTEXT, (WPARAM)8, (LPARAM)s2); SendMessage(hWndEdt3, WM_GETTEXT, (WPARAM)8, (LPARAM)s3); SendMessage(hWndEdt4, WM_GETTEXT, (WPARAM)8, (LPARAM)s4); SendMessage(hWndEdt5, WM_GETTEXT, (WPARAM)8, (LPARAM)s5); SendMessage(hWndEdt6, WM_GETTEXT, (WPARAM)8, (LPARAM)s6); SendMessage(hWndEdt7, WM_GETTEXT, (WPARAM)8, (LPARAM)s7); SendMessage(hWndEdt8, WM_GETTEXT, (WPARAM)8, (LPARAM)s8); SendMessage(hWndEdt9, WM_GETTEXT, (WPARAM)8, (LPARAM)s9); SendMessage(hWndEdt10, WM_GETTEXT, (WPARAM)8, (LPARAM)s10); SendMessage(hWndEdt19, WM_GETTEXT, (WPARAM)8, (LPARAM)s11); //数値に変換 v[0] = atol(s1); v[1] = atol(s2); v[2] = atol(s3); v[3] = atol(s4); v[4] = atol(s5); v[5] = atol(s6); v[6] = atol(s7); v[7] = atol(s8); v[8] = atol(s9); v[9] = atol(s10); v[10] = atol(s11); //計算 v[2] = v[0] + v[1];//支給合計 //雇用保険を計算 if (BST_CHECKED == SendMessage(hOpt3, BM_GETCHECK, 0, 0)) nKubun = 0; else nKubun = 1; if (BST_CHECKED == SendMessage(hChk2, BM_GETCHECK, 0, 0)) hk.GetDataB(v[2], nKubun, nKyuyo, &v[6]); else v[6] = 0; //源泉徴収税を計算 tmp = v[3] + v[4] + v[5] + v[6]; if (BST_CHECKED == SendMessage(hOpt1, BM_GETCHECK, 0, 0)) nRan = 0; else nRan = 1; gz.GetDataA(v[0], tmp, v[10], nRan, &v[7]); v[8] = v[3] + v[4] + v[5] + v[6] + v[7];//控除合計 v[9] = v[2] - v[8];//差引支給 //文字列に変換 _ltoa(v[0], s1, 10); _ltoa(v[1], s2, 10); _ltoa(v[2], s3, 10); _ltoa(v[3], s4, 10); _ltoa(v[4], s5, 10); _ltoa(v[5], s6, 10); _ltoa(v[6], s7, 10); _ltoa(v[7], s8, 10); _ltoa(v[8], s9, 10); _ltoa(v[9], s10, 10); //エディトウィンドウに戻す SendMessage(hWndEdt1, WM_SETTEXT, 0, (LPARAM)s1); SendMessage(hWndEdt2, WM_SETTEXT, 0, (LPARAM)s2); SendMessage(hWndEdt3, WM_SETTEXT, 0, (LPARAM)s3); SendMessage(hWndEdt4, WM_SETTEXT, 0, (LPARAM)s4); SendMessage(hWndEdt5, WM_SETTEXT, 0, (LPARAM)s5); SendMessage(hWndEdt6, WM_SETTEXT, 0, (LPARAM)s6); SendMessage(hWndEdt7, WM_SETTEXT, 0, (LPARAM)s7); SendMessage(hWndEdt8, WM_SETTEXT, 0, (LPARAM)s8); SendMessage(hWndEdt9, WM_SETTEXT, 0, (LPARAM)s9); SendMessage(hWndEdt10, WM_SETTEXT, 0, (LPARAM)s10); } /*賞与エディト内の税金等を計算する *計算ボタンから呼び出す */ void CalcEdtZeiB(HWND hChk1, HWND hChk2, HWND hOpt1, HWND hOpt3) { char s1[8], s2[8], s3[8], s4[8], s5[8], s6[8], s7[8], s8[8], s9[8], s10[8], s11[8], s12[8]; long v[12], tmp, vSyaho; int nKubun, nRan, nFour; const int nSyoyo = 1; CHokenryo hk; CGensenZei gz; //配列初期化 memset(s1, '\0', sizeof(s1)); memset(s2, '\0', sizeof(s2)); memset(s3, '\0', sizeof(s3)); memset(s4, '\0', sizeof(s4)); memset(s5, '\0', sizeof(s5)); memset(s6, '\0', sizeof(s6)); memset(s7, '\0', sizeof(s7)); memset(s8, '\0', sizeof(s8)); memset(s9, '\0', sizeof(s9)); memset(s10, '\0', sizeof(s10)); memset(s11, '\0', sizeof(s11)); memset(s12, '\0', sizeof(s12)); memset(v, 0, sizeof(v)); //エディトウィンドウの値を取得 SendMessage(hWndEdt11, WM_GETTEXT, (WPARAM)8, (LPARAM)s1); SendMessage(hWndEdt12, WM_GETTEXT, (WPARAM)8, (LPARAM)s2); SendMessage(hWndEdt13, WM_GETTEXT, (WPARAM)8, (LPARAM)s3); SendMessage(hWndEdt14, WM_GETTEXT, (WPARAM)8, (LPARAM)s4); SendMessage(hWndEdt15, WM_GETTEXT, (WPARAM)8, (LPARAM)s5); SendMessage(hWndEdt16, WM_GETTEXT, (WPARAM)8, (LPARAM)s6); SendMessage(hWndEdt17, WM_GETTEXT, (WPARAM)8, (LPARAM)s7); SendMessage(hWndEdt18, WM_GETTEXT, (WPARAM)8, (LPARAM)s8); SendMessage(hWndEdt19, WM_GETTEXT, (WPARAM)8, (LPARAM)s9); SendMessage(hWndEdt3, WM_GETTEXT, (WPARAM)8, (LPARAM)s10); SendMessage(hWndEdt4, WM_GETTEXT, (WPARAM)8, (LPARAM)s11); SendMessage(hWndEdt5, WM_GETTEXT, (WPARAM)8, (LPARAM)s12); //数値に変換 v[0] = atol(s1); v[1] = atol(s2); v[2] = atol(s3); v[3] = atol(s4); v[4] = atol(s5); v[5] = atol(s6); v[6] = atol(s7); v[7] = atol(s8); v[8] = atol(s9); v[9] = atol(s10); v[10] = atol(s11); v[11] = atol(s12); //雇用保険を計算 if (BST_CHECKED == SendMessage(hOpt3, BM_GETCHECK, 0, 0)) nKubun = 0; else nKubun = 1; if (BST_CHECKED == SendMessage(hChk2, BM_GETCHECK, 0, 0)) hk.GetDataB(v[0], nKubun, nSyoyo, &v[4]); else v[4] = 0; //社会保険を計算 if (BST_CHECKED == SendMessage(hChk1, BM_GETCHECK, 0, 0)) nFour = 0; else nFour = 1; hk.GetDataA(v[0], nFour, &v[1], &v[2], &v[3]); //源泉徴収税を計算 vSyaho = v[9] + v[10] + v[11]; tmp = v[1] + v[2] + v[3] + v[4]; if (BST_CHECKED == SendMessage(hOpt1, BM_GETCHECK, 0, 0)) nRan = 0; else nRan = 1; gz.GetDataB(v[0], vSyaho, tmp, v[8], nRan, &v[5]); //計算 v[6] = v[1] + v[2] + v[3] + v[4] + v[5];//控除合計 v[7] = v[0] - v[6];//差引支給 //文字列に変換 _ltoa(v[0], s1, 10); _ltoa(v[1], s2, 10); _ltoa(v[2], s3, 10); _ltoa(v[3], s4, 10); _ltoa(v[4], s5, 10); _ltoa(v[5], s6, 10); _ltoa(v[6], s7, 10); _ltoa(v[7], s8, 10); //エディトウィンドウに戻す SendMessage(hWndEdt11, WM_SETTEXT, 0, (LPARAM)s1); SendMessage(hWndEdt12, WM_SETTEXT, 0, (LPARAM)s2); SendMessage(hWndEdt13, WM_SETTEXT, 0, (LPARAM)s3); SendMessage(hWndEdt14, WM_SETTEXT, 0, (LPARAM)s4); SendMessage(hWndEdt15, WM_SETTEXT, 0, (LPARAM)s5); SendMessage(hWndEdt16, WM_SETTEXT, 0, (LPARAM)s6); SendMessage(hWndEdt17, WM_SETTEXT, 0, (LPARAM)s7); SendMessage(hWndEdt18, WM_SETTEXT, 0, (LPARAM)s8); }