📄 configpid.c
字号:
MessageBox (hDlg, "Button pushed", "OK",
MB_OK | MB_ICONINFORMATION | MB_BASEDONPARENT);
break;
}
break;
}
return DefaultPageProc (hDlg, message, wParam, lParam);
}
//属性字页面4
static int
PageProc4 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hmemDC;
switch (message) {
case MSG_INITPAGE:
break;
case MSG_SHOWPAGE:
return 1;
case MSG_PAINT:
{
hmemDC = BeginPaint(hDlg);
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
TextOut(hmemDC,PID1_X1,PID1_Y1-30,"工作方式3:双回路串接调节器");
TextOut(hmemDC,PID1_X1,PID1_Y1,"PV1被控对象1实测值: ");
TextOut(hmemDC,PID1_X3,PID1_Y1,"PV2被控对象2实测值: ");
TextOut(hmemDC,PID1_X1,PID1_Y4,"SV1回路1控制设定值:");
TextOut(hmemDC,PID1_X3,PID1_Y4,"SV2回路1控制设定值:");
TextOut(hmemDC,PID1_X1,PID1_Y5,"回路1:自动");
TextOut(hmemDC,PID1_X3,PID1_Y5,"回路2:自动");
TextOut(hmemDC,PID1_X1,PID1_Y9,"P1: 比例");
TextOut(hmemDC,PID1_X1,PID1_Y10,"I1: 积分");
TextOut(hmemDC,PID1_X1,PID1_Y11,"D1: 微分");
TextOut(hmemDC,PID1_X3+10,PID1_Y9,"P2: 比例");
TextOut(hmemDC,PID1_X3+10,PID1_Y10,"I2: 积分");
TextOut(hmemDC,PID1_X3+10,PID1_Y11,"D2: 微分"); }
break;
case MSG_SHEETCMD:
if (wParam == IDOK) {
// char buffer [20];
// GetDlgItemText (hDlg, IDC_EDIT1, buffer, 18);
// buffer [18] = '\0';
}
return 0;
case MSG_COMMAND:
switch (wParam) {
case IDOK:
case IDCANCEL:
MessageBox (hDlg, "Button pushed", "OK",
MB_OK | MB_ICONINFORMATION | MB_BASEDONPARENT);
break;
}
break;
}
return DefaultPageProc (hDlg, message, wParam, lParam);
}
//属性字页面5
static int
PageProc5 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hmemDC;
switch (message) {
case MSG_INITPAGE:
break;
case MSG_SHOWPAGE:
return 1;
case MSG_PAINT:
{
hmemDC = BeginPaint(hDlg);
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
TextOut(hmemDC,PID1_X1,PID1_Y1-30,"工作方式4:双回输入一路输出调节器");
TextOut(hmemDC,PID1_X2,PID1_Y1 ,"PV1,PV2为同类型信号");
TextOut(hmemDC,PID1_X1,PID1_Y2,"PV1被控对象1实测值: ");
TextOut(hmemDC,PID1_X3,PID1_Y2,"PV2被控对象2实测值: ");
TextOut(hmemDC,PID1_X1,PID1_Y3,"回路1:自动");
TextOut(hmemDC,PID1_X3,PID1_Y3,"回路2:自动");
TextOut(hmemDC,PID1_X1,PID1_Y4,"SV1回路1控制设定值:");
TextOut(hmemDC,PID1_X3,PID1_Y4,"SV2回路1控制设定值:");
TextOut(hmemDC,PID1_X1,PID1_Y5,"OUT1控制输出设定值:");
TextOut(hmemDC,PID1_X3,PID1_Y5,"OUT2控制输出设定值:");
TextOut(hmemDC,PID1_X1,PID1_Y8 ,"输出电流: OUT1");
TextOut(hmemDC,PID1_X2,PID1_Y8 ,"选OUT1,OUT2中较大值的回路");
// TextOut(hmemDC,PID1_X1,PID1_Y8 ,"AF1:继电器1方式");
// TextOut(hmemDC,PID1_X3,PID1_Y8 ,"AF2:继电器2方式");
TextOut(hmemDC,PID1_X1,PID1_Y9,"P1: 比例");
TextOut(hmemDC,PID1_X1,PID1_Y10,"I1: 积分");
TextOut(hmemDC,PID1_X1,PID1_Y11,"D1: 微分");
TextOut(hmemDC,PID1_X3+10,PID1_Y9,"P2: 比例");
TextOut(hmemDC,PID1_X3+10,PID1_Y10,"I2: 积分");
TextOut(hmemDC,PID1_X3+10,PID1_Y11,"D2: 微分");
EndPaint(hDlg,hmemDC);
}
break;
case MSG_SHEETCMD:
if (wParam == IDOK) {
// char buffer [20];
// GetDlgItemText (hDlg, IDC_EDIT1, buffer, 18);
// buffer [18] = '\0';
}
return 0;
case MSG_COMMAND:
switch (wParam) {
case IDOK:
case IDCANCEL:
MessageBox (hDlg, "Button pushed", "OK",
MB_OK | MB_ICONINFORMATION | MB_BASEDONPARENT);
break;
}
break;
}
return DefaultPageProc (hDlg, message, wParam, lParam);
}
//属性字页面2
static int
PageProc6 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hmemDC;
switch (message) {
case MSG_INITPAGE:
break;
case MSG_SHOWPAGE:
return 1;
case MSG_PAINT:
{
hmemDC = BeginPaint(hDlg);
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
TextOut(hmemDC,PID1_X1,PID1_Y1-30,"工作方式4:双回输入一路输出调节器");
TextOut(hmemDC,PID1_X2,PID1_Y1 ,"PV1,PV2为不同类型信号");
TextOut(hmemDC,PID1_X1,PID1_Y2,"PV1被控对象1实测值: ");
TextOut(hmemDC,PID1_X3,PID1_Y2,"PV2被控对象2实测值: ");
TextOut(hmemDC,PID1_X1,PID1_Y3,"回路1:自动");
TextOut(hmemDC,PID1_X3,PID1_Y3,"回路2:自动");
TextOut(hmemDC,PID1_X1,PID1_Y4,"SV1回路1控制设定值:");
TextOut(hmemDC,PID1_X3,PID1_Y4,"SV2回路1控制设定值:");
TextOut(hmemDC,PID1_X1,PID1_Y5,"OUT1控制输出设定值:");
TextOut(hmemDC,PID1_X3,PID1_Y5,"OUT2控制输出设定值:");
TextOut(hmemDC,PID1_X1,PID1_Y8 ,"输出电流1: ");
TextOut(hmemDC,PID1_X2,PID1_Y8 ,"选OUT1,OUT2中较大值的回路");
// TextOut(hmemDC,PID1_X1,PID1_Y8 ,"AF1:继电器1方式");
// TextOut(hmemDC,PID1_X3,PID1_Y8 ,"AF2:继电器2方式");
TextOut(hmemDC,PID1_X1,PID1_Y9,"P1: 比例");
TextOut(hmemDC,PID1_X1,PID1_Y10,"I1: 积分");
TextOut(hmemDC,PID1_X1,PID1_Y11,"D1: 微分");
TextOut(hmemDC,PID1_X3+10,PID1_Y9,"P2: 比例");
TextOut(hmemDC,PID1_X3+10,PID1_Y10,"I2: 积分");
TextOut(hmemDC,PID1_X3+10,PID1_Y11,"D2: 微分");
EndPaint(hDlg,hmemDC);
}
break;
case MSG_SHEETCMD:
if (wParam == IDOK) {
// char buffer [20];
// GetDlgItemText (hDlg, IDC_EDIT1, buffer, 18);
// buffer [18] = '\0';
}
return 0;
case MSG_COMMAND:
switch (wParam) {
case IDOK:
case IDCANCEL:
MessageBox (hDlg, "Button pushed", "OK",
MB_OK | MB_ICONINFORMATION | MB_BASEDONPARENT);
break;
}
break;
}
return DefaultPageProc (hDlg, message, wParam, lParam);
}
//显示板卡属性页
void ShowProp(HWND hDlg)
{
ShowWindow(GetDlgItem (hDlg, CPID_BT1),SW_HIDE) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT2),SW_HIDE) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT3),SW_HIDE) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT4),SW_HIDE) ;
ShowWindow(GetDlgItem (hDlg, IDC_PROPSHEET),SW_SHOW) ;
}
//显示板卡基本信息
void ShowPage1(HWND hDlg)
{
ShowWindow(GetDlgItem (hDlg, CPID_BT1),SW_SHOW) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT2),SW_SHOW) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT3),SW_SHOW) ;
ShowWindow(GetDlgItem (hDlg, CPID_BT4),SW_SHOW) ;
ShowWindow(GetDlgItem (hDlg, IDC_PROPSHEET),SW_HIDE) ;
}
//pid Card main proc
int PIDDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HDC hmemDC;
int id;
HWND pshwnd;
static BOOL keydowned;
static int nowpage=0;//记录参数页面按钮按下的次数
static int ctrl_pid_id;//按键ID号或者是文本焦点号码
static BOOL flag_entered;//是否按下了ENTER键
static int index;//上下键选择
int index2;
static int num ;// 记录下拉条数
id= LOWORD (wParam);
switch (message)
{
case MSG_INITDIALOG:
CreatePidCtrl1( hDlg);
ShowPidCtrl1(hDlg);
pshwnd = GetDlgItem (hDlg, IDC_PROPSHEET);
DlgStructParams1.controls = CtrlStructParams1;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams1, (LPARAM)PageProc1);
DlgStructParams2.controls = CtrlStructParams2;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams2, (LPARAM)PageProc2);
DlgStructParams3.controls = CtrlStructParams3;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams3, (LPARAM)PageProc3);
DlgStructParams4.controls = CtrlStructParams4;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams4, (LPARAM)PageProc4);
DlgStructParams5.controls = CtrlStructParams5;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams5, (LPARAM)PageProc5);
DlgStructParams6.controls = CtrlStructParams6;
SendMessage (pshwnd, PSM_ADDPAGE,
(WPARAM)&DlgStructParams6, (LPARAM)PageProc6);
ShowWindow(GetDlgItem (hDlg, IDC_PROPSHEET),SW_HIDE) ;
InitPIDCard(hDlg);
/*
CreatePidCtrl2( hDlg);
CreatePidCtrl3( hDlg);
HidePidCtrl2(hDlg);
HidePidCtrl3(hDlg);
*/
return 1;
case MSG_CREATE:
break;
case MSG_SHOWWINDOW:
{
if(pid_dev_num>0)//表示存在流量卡
{
pid_id=0;
//eadFPage1(pid_id);//从通讯读取第一个卡
}
}
break;
case MSG_TIMER:
break;
case MSG_PAINT:
hdc = BeginPaint(hDlg);
if(nowpage==0)
ShowPIDPage1(hDlg,hdc);
//
// else if(nowpage==1) ShowPIDPage2( hDlg, hdc);
// else if(nowpage==2) ShowPIDPage3( hDlg, hdc);
EndPaint(hDlg,hdc);
break;
case MSG_KEYDOWN:
if(!keydowned)
{
if(id==KEY_LEFT)
SendDlgItemMessage(hDlg, CPID_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, CPID_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, CPID_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, CPID_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, CPID_ENTER, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_LAST)SendDlgItemMessage(hDlg, CPID_BOT_LEFT, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_NEXT)SendDlgItemMessage(hDlg, CPID_BOT_RIGHT, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_PARA)SendDlgItemMessage(hDlg, CP2_PAGE, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_CARD)SendDlgItemMessage(hDlg, CP2_CARD, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_SET)SendDlgItemMessage(hDlg, CP2_SET, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_RETURN)SendDlgItemMessage(hDlg, CPID_BOT_RETURN, BM_SETSTATE, BST_PUSHED,0);
keydowned=1;
}
break;
case MSG_KEYUP:
{
keydowned=0;
if(id==KEY_EXIT) EndDialog (hDlg, 0);
if(id==SCANCODE_F1) EndDialog (hDlg, 0);
if(id==KEY_LEFT)
{
SendDlgItemMessage(hDlg, CPID_LEFT, MSG_LBUTTONUP, 0,0);
ctrl_pid_id=pid1_id_left[ctrl_pid_id-pid_page_ctrlid];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -