📄 igrid.c
字号:
static double tcornery2 = (DEFAULTPAPERTOP - DEFAULTPAPERBOTTOM) / 25.0;
static double tcornerx3 = (DEFAULTPAPERRIGHT - DEFAULTPAPERLEFT) / 100.0;
static double tcornery3 = (DEFAULTPAPERTOP - DEFAULTPAPERBOTTOM) / 25.0;
static int tdiv1 = 4, tdiv2 = 4;
HWND hep, hsigma, hmu, hmu_sigma, hxloc, hyloc,
hcornerx1, hcornery1, hcornerx2, hcornery2,
hcornerx3, hcornery3, hdiv1, hdiv2;
HDC hdc;
PAINTSTRUCT ps;
dPOINT gcenter;
block *tmpblk;
COUNT totalcount, nscount;
HMENU hMenu ;
switch(message)
{
case WM_INITDIALOG:
if(quadblockselected == NULL){
sprintf(sepsilon, "%lg", tepsilon);
sprintf(ssigma, "%lg", tsigma);
sprintf(smu, "%lg", tmu);
sprintf(ssigma_mu,"%lg", tsigma_mu);
sprintf(sxloc, "%lg", txloc);
sprintf(syloc, "%lg", tyloc);
sprintf(scornerx1,"%lg", tcornerx1);
sprintf(scornery1,"%lg", tcornery1);
sprintf(scornerx2,"%lg", tcornerx2);
sprintf(scornery2,"%lg", tcornery2);
sprintf(scornerx3,"%lg", tcornerx3);
sprintf(scornery3,"%lg", tcornery3);
sprintf(sdiv1, "%d", tdiv1);
sprintf(sdiv2, "%d", tdiv2);
hep = GetDlgItem(hDlg, EPSILON);
SetWindowText(hep, sepsilon);
hsigma = GetDlgItem(hDlg, SIGMA);
SetWindowText(hsigma, ssigma);
hmu = GetDlgItem(hDlg, MU);
SetWindowText(hmu, smu);
hmu_sigma = GetDlgItem(hDlg, SIGMA_MU);
SetWindowText(hmu_sigma, ssigma_mu);
hyloc = GetDlgItem(hDlg, YLOC);
SetWindowText(hyloc, syloc);
hxloc = GetDlgItem(hDlg, XLOC);
SetWindowText(hxloc, sxloc);
hcornerx1 = GetDlgItem(hDlg, CORNERX1);
SetWindowText(hcornerx1, scornerx1);
hcornery1 = GetDlgItem(hDlg, CORNERY1);
SetWindowText(hcornery1, scornery1);
hcornerx2 = GetDlgItem(hDlg, CORNERX2);
SetWindowText(hcornerx2, scornerx2);
hcornery2 = GetDlgItem(hDlg, CORNERY2);
SetWindowText(hcornery2, scornery2);
hcornerx3 = GetDlgItem(hDlg, CORNERX3);
SetWindowText(hcornerx3, scornerx3);
hcornery3 = GetDlgItem(hDlg, CORNERY3);
SetWindowText(hcornery3, scornery3);
hdiv1 = GetDlgItem(hDlg, COLUMN);
SetWindowText(hdiv1, sdiv1);
hdiv2 = GetDlgItem(hDlg, ROW);
SetWindowText(hdiv2, sdiv2);
}
else{
tepsilon = quadblockselected->epsilon;
sprintf(sepsilon, "%lg", tepsilon);
tsigma = quadblockselected->sigma;
sprintf(ssigma, "%lg", tsigma);
tmu = quadblockselected->mu;
sprintf(smu, "%lg", tmu);
tsigma_mu = quadblockselected->sigma_mu;
sprintf(ssigma_mu, "%lg", tsigma_mu);
txloc = quadblockselected->xloc;
sprintf(sxloc, "%lg", txloc);
tyloc = quadblockselected->yloc;
sprintf(syloc, "%lg", tyloc);
tcornerx1 = quadblockselected->cornerx1;
sprintf(scornerx1, "%lg", tcornerx1);
tcornery1 = quadblockselected->cornery1;
sprintf(scornery1, "%lg", tcornery1);
tcornerx2 = quadblockselected->cornerx2;
sprintf(scornerx2, "%lg", tcornerx2);
tcornery2 = quadblockselected->cornery2;
sprintf(scornery2, "%lg", tcornery2);
tcornerx3 = quadblockselected->cornerx3;
sprintf(scornerx3, "%lg", tcornerx3);
tcornery3 = quadblockselected->cornery3;
sprintf(scornery3, "%lg", tcornery3);
tdiv1 = quadblockselected->div1;
sprintf(sdiv1, "%d", tdiv1);
tdiv2 = quadblockselected->div2;
sprintf(sdiv2, "%d", tdiv2);
hep = GetDlgItem(hDlg, EPSILON);
SetWindowText(hep, sepsilon);
hsigma = GetDlgItem(hDlg, SIGMA);
SetWindowText(hsigma, ssigma);
hmu = GetDlgItem(hDlg, MU);
SetWindowText(hmu, smu);
hmu_sigma = GetDlgItem(hDlg, SIGMA_MU);
SetWindowText(hmu_sigma, ssigma_mu);
hyloc = GetDlgItem(hDlg, YLOC);
SetWindowText(hyloc, syloc);
hxloc = GetDlgItem(hDlg, XLOC);
SetWindowText(hxloc, sxloc);
hcornerx1 = GetDlgItem(hDlg, CORNERX1);
SetWindowText(hcornerx1, scornerx1);
hcornery1 = GetDlgItem(hDlg, CORNERY1);
SetWindowText(hcornery1, scornery1);
hcornerx2 = GetDlgItem(hDlg, CORNERX2);
SetWindowText(hcornerx2, scornerx2);
hcornery2 = GetDlgItem(hDlg, CORNERY2);
SetWindowText(hcornery2, scornery2);
hcornerx3 = GetDlgItem(hDlg, CORNERX3);
SetWindowText(hcornerx3, scornerx3);
hcornery3 = GetDlgItem(hDlg, CORNERY3);
SetWindowText(hcornery3, scornery3);
hdiv1 = GetDlgItem(hDlg, COLUMN);
SetWindowText(hdiv1, sdiv1);
hdiv2 = GetDlgItem(hDlg, ROW);
SetWindowText(hdiv2, sdiv2);
}
return TRUE;
case WM_COMMAND:
switch(wParam)
{
case EPSILON:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tepsilon = atof((const char *)sepsilon);
if(tepsilon <= 1.0){
SetDlgItemText(hDlg, EPSILON, "1.0");
tepsilon = 1.0;
}
break;
default:
GetDlgItemText(hDlg, EPSILON, sepsilon, 12);
break;
}
return TRUE;
case SIGMA:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tsigma = atof((const char *)ssigma);
if(tsigma < 0){
SetDlgItemText(hDlg, SIGMA, "0.0");
tsigma = 0.0;
}
break;
default:
GetDlgItemText(hDlg, SIGMA, ssigma, 12);
break;
}
return TRUE;
case MU:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tmu = atof((const char *)smu);
if(tmu < 1.0){
SetDlgItemText(hDlg, MU, "1.0");
tmu = 1.0;
}
break;
default:
GetDlgItemText(hDlg, MU, smu, 12);
break;
}
return TRUE;
case SIGMA_MU:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tsigma_mu = atof((const char *)ssigma_mu);
if(tsigma_mu < 0.0 ){
SetDlgItemText(hDlg, SIGMA_MU, "0.0");
tsigma_mu = 0.0;
}
break;
default:
GetDlgItemText(hDlg, SIGMA_MU, ssigma_mu, 12);
break;
}
return TRUE;
case XLOC:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
txloc = atof((const char *)sxloc);
if(txloc < papersize.left){
sprintf(sxloc, "%lg", papersize.left);
SetDlgItemText(hDlg, XLOC, sxloc);
txloc = papersize.left;
}
if(txloc > papersize.right){
sprintf(sxloc, "%lg", papersize.right);
SetDlgItemText(hDlg, XLOC, sxloc);
txloc = papersize.right;
}
break;
default:
GetDlgItemText(hDlg, XLOC, sxloc, 12);
break;
}
case YLOC:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tyloc = atof((const char *)syloc);
if(tyloc < papersize.bottom){
sprintf(syloc, "%lg", papersize.bottom);
SetDlgItemText(hDlg, YLOC, syloc);
tyloc = papersize.bottom;
}
if(tyloc > papersize.top){
sprintf(syloc, "%lg", papersize.top);
SetDlgItemText(hDlg, YLOC, syloc);
tyloc = papersize.top;
}
break;
default:
GetDlgItemText(hDlg, YLOC, syloc, 12);
break;
}
return TRUE;
case CORNERX1:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornerx1 = atof((const char *)scornerx1);
break;
default:
GetDlgItemText(hDlg, CORNERX1, scornerx1, 12);
break;
}
return TRUE;
case CORNERY1:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornery1 = atof((const char *)scornery1);
break;
default:
GetDlgItemText(hDlg, CORNERY1, scornery1, 12);
break;
}
return TRUE;
case CORNERX2:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornerx2 = atof((const char *)scornerx2);
break;
default:
GetDlgItemText(hDlg, CORNERX2, scornerx2, 12);
break;
}
return TRUE;
case CORNERY2:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornery2 = atof((const char *)scornery2);
break;
default:
GetDlgItemText(hDlg, CORNERY2, scornery2, 12);
break;
}
return TRUE;
case CORNERX3:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornerx3 = atof((const char *)scornerx3);
break;
default:
GetDlgItemText(hDlg, CORNERX3, scornerx3, 12);
break;
}
return TRUE;
case CORNERY3:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tcornery3 = atof((const char *)scornery3);
break;
default:
GetDlgItemText(hDlg, CORNERY3, scornery3, 12);
break;
}
return TRUE;
case COLUMN:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tdiv1 = atoi((const char *)sdiv1);
if(tdiv1 <= 0 ){
SetDlgItemText(hDlg, COLUMN, "1");
tdiv1 = 1;
}
break;
default:
GetDlgItemText(hDlg, COLUMN, sdiv1, 12);
break;
}
return TRUE;
case ROW:
switch(HIWORD(lParam)){
case EN_KILLFOCUS:
tdiv2 = atoi((const char *)sdiv2);
if(tdiv2 <= 0 ){
SetDlgItemText(hDlg, ROW, "2");
tdiv2 = 2;
}
break;
default:
GetDlgItemText(hDlg, ROW, sdiv2, 12);
break;
}
return TRUE;
case BYMOUSE:
EndDialog(hDlg, 0);
if(quadblockselected != NULL){
quadblockselected->disconnect();
if(selected.remove(quadblockselected) == NO)
unselected.remove(quadblockselected);
InvalidateRect(hwndPaper, NULL, TRUE);
quadblockselected = NULL;
}
tmpblk = new quadblk(tepsilon, tsigma, tmu, tsigma_mu,
txloc, tyloc, tcornerx1, tcornery1, tcornerx2, tcornery2,
tcornerx3, tcornery3, tdiv1, tdiv2);
addon.insert(tmpblk);
addon.center(&gcenter);
adder.setcenter(gcenter);
usermode->releasetoolbar();
internalmode = mouse = &adder;
return TRUE;
case BYCOORD:
EndDialog(hDlg, 0);
if(quadblockselected != NULL){
quadblockselected->disconnect();
if(selected.remove(quadblockselected) == NO)
unselected.remove(quadblockselected);
InvalidateRect(hwndPaper, NULL, TRUE);
quadblockselected = NULL;
}
tmpblk = new quadblk(tepsilon, tsigma, tmu, tsigma_mu,
txloc, tyloc, tcornerx1, tcornery1, tcornerx2, tcornery2,
tcornerx3, tcornery3, tdiv1, tdiv2);
addon.insert(tmpblk);
adjustallowablesnap();
addon.clearconnectmask();
unselected.clearconnectmask();
selected.clearconnectmask();
totalcount = addon.connect(unselected);
nscount = addon.connect(selected);
totalcount.node += nscount.node;
totalcount.side += nscount.side;
addon.transfer(unselecte
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -