⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog.c

📁 frasr200的win 版本源码(18.21),使用make文件,使用的vc版本较低,在我的环境下编译有问题! 很不错的分形程序代码!
💻 C
📖 第 1 页 / 共 5 页
字号:
                    potparam[2] = atof(temp);
                    pot16bit = win_temp2;
                    GetDlgItemText(hDlg, ID_DISTEST, temp, 10);
                    usr_distest = atoi(temp);
                    GetDlgItemText(hDlg, ID_DISTESTWID, temp, 10);
                    distestwidth = atoi(temp);
                    for (i = 0; i < 3; i++) {
                        GetDlgItemText(hDlg, ID_INVERTRAD+i, temp, 20);
                        if (temp[0] == 'a' || temp[0] == 'A')
                            inversion[i] = AUTOINVERT;
                        else
                            inversion[i] = atof(temp);
                        }
                    invert = (inversion[0] == 0.0) ? 0 : 3;
                    GetDlgItemText(hDlg, ID_COLORMIN, temp, 10);
                    rotate_lo = atoi(temp);
                    GetDlgItemText(hDlg, ID_COLORMAX, temp, 10);
                    rotate_hi = atoi(temp);
                    if (rotate_lo < 0 || rotate_hi > 255 || rotate_lo > rotate_hi) {
                        rotate_lo = 0;
                        rotate_hi = 255;
                        }
                    time_to_restart = 0;
                    if (
                        win_oldprompts[0] != win_temp1   ||
                        win_oldprompts[1] != potparam[0]  ||
                        win_oldprompts[2] != potparam[1]  ||
                        win_oldprompts[3] != potparam[2]  ||
                        win_oldprompts[4] != win_temp2    ||
                        win_oldprompts[5] != usr_distest  ||
                        win_oldprompts[6] != distestwidth ||
                        win_oldprompts[7] != inversion[0] ||
                        win_oldprompts[8] != inversion[1] ||
                        win_oldprompts[9] != inversion[2]
                        ) time_to_restart = 1;
                    EndDialog(hDlg, time_to_restart);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                case ID_FINITE:
                    if (win_temp1 == 0)
                        win_temp1 = 1;
                    else
                        win_temp1 = 0;
                    CheckDlgButton(hDlg, ID_FINITE, win_temp1);
                    break;

                case ID_POTENT16:
                    if (win_temp2 == 0)
                        win_temp2 = 1;
                    else
                        win_temp2 = 0;
                    CheckDlgButton(hDlg, ID_POTENT16, win_temp2);
                    break;

                }
        
        }
    return (FALSE);
}


BOOL FAR PASCAL SelectSavePar(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
   char temp[80];
   int i, j, k;
   extern int  colorstate; 	/* comments in cmdfiles */
   extern char CommandFile[];
   extern char CommandName[];
   extern char far CommandComment1[];
   extern char far CommandComment2[];
   extern char colorfile[];
   extern int  colorstate;
   extern	int	usr_distest;	/* distance estimator option */
   extern int  potflag;			/* continuous potential flag */
   extern	double	potparam[3];	/* three potential parameters*/

    switch (message) {

        case WM_INITDIALOG:
            win_temp1 = 1;
            if (colorstate == 1)
                win_temp1 = 1;
            if (colorstate == 2)
                win_temp1 = 2;
            win_temp2 = colors - 1;
            if (maxiter < win_temp2) win_temp2 = maxiter;
            if (inside  > 0 && inside    > win_temp2) win_temp2 = inside;
            if (outside > 0 && outside   > win_temp2) win_temp2 = outside;
            if (usr_distest < 0 && 0-usr_distest > win_temp2) win_temp2 = 0-usr_distest;
            if (decomp > win_temp2) win_temp2 = decomp - 1;
            if (potflag && potparam[0] >= win_temp2) win_temp2 = potparam[0];
            if (++win_temp2 > 256) win_temp2 = 256;
	    SetDlgItemText(hDlg, ID_PFILE, CommandFile);
	    SetDlgItemText(hDlg, ID_PENTRY, CommandName);
	    if (CommandName[0] == 0)
	        SetDlgItemText(hDlg, ID_PENTRY, "test");
	    SetDlgItemText(hDlg, ID_PCOM1, CommandComment1);
	    SetDlgItemText(hDlg, ID_PCOM2, CommandComment2);
            CheckDlgButton(hDlg, ID_PCOL1+win_temp1, 1);
            sprintf(temp,"%i",win_temp2);
	    SetDlgItemText(hDlg, ID_PCNUM, temp);
	    if (colorstate == 2)
	        SetDlgItemText(hDlg, ID_PCFILE, colorfile);
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    /* retrieve and validate the results */
                    GetDlgItemText(hDlg, ID_PFILE, CommandFile,     50);
                    GetDlgItemText(hDlg, ID_PENTRY, CommandName,    50);
                    GetDlgItemText(hDlg, ID_PCOM1, CommandComment1, 57);
                    GetDlgItemText(hDlg, ID_PCOM2, CommandComment2, 57);
                    GetDlgItemText(hDlg, ID_PCFILE, colorfile,      50);
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                case ID_PCOL1:
                case ID_PCOL2:
                case ID_PCOL3:
                    win_temp1 = wParam - ID_PCOL1;
                    CheckRadioButton(hDlg, ID_PCOL1, ID_PCOL3, wParam);
                }
        
        }
    return (FALSE);
}


int win_cycledir = -1, win_cyclerand = 0, win_cyclefreq = 0, win_cycledelay = 0;
int win_tempcycle, win_tempcycledir, win_tempcyclerand, win_tempcyclefreq;

BOOL FAR PASCAL SelectCycle(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
    switch (message) {

        case WM_INITDIALOG:
            win_tempcycle = time_to_cycle;
            win_tempcycledir = win_cycledir;
            win_tempcyclerand = win_cyclerand;
            win_tempcyclefreq = win_cyclefreq;
            if (win_tempcycle == 0)
                CheckDlgButton(hDlg, ID_CYCLEOFF, 1);
            else
                CheckDlgButton(hDlg, ID_CYCLEON, 1);
            if (win_tempcycledir == -1)
                CheckDlgButton(hDlg, ID_CYCLEOUT, 1);
            else
                CheckDlgButton(hDlg, ID_CYCLEIN, 1);
            if (win_tempcyclerand == 0)
                CheckDlgButton(hDlg, ID_CYCLESTAT, 1);
            else
                CheckDlgButton(hDlg, ID_CYCLECHG, 1);
            if (win_tempcyclefreq == 0)
                CheckDlgButton(hDlg, ID_CYCLELOW, 1);
            else if (win_tempcyclefreq == 1)
                CheckDlgButton(hDlg, ID_CYCLEMED, 1);
            else
                CheckDlgButton(hDlg, ID_CYCLEHIGH, 1);
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    /* retrieve and validate the results */
                    time_to_cycle = win_tempcycle;
                    win_cycledir = win_tempcycledir;
                    win_cyclerand = win_tempcyclerand;
                    win_cyclefreq = win_tempcyclefreq;
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                case ID_CYCLEOFF:
                    win_tempcycle = 0;
                    CheckRadioButton(hDlg, ID_CYCLEOFF, ID_CYCLEON, ID_CYCLEOFF);
                    break;

                case ID_CYCLEON:
                    win_tempcycle = 1;
                    CheckRadioButton(hDlg, ID_CYCLEOFF, ID_CYCLEON, ID_CYCLEON);
                    break;

                case ID_CYCLEOUT:
                    win_tempcycledir = -1;
                    CheckRadioButton(hDlg, ID_CYCLEOUT, ID_CYCLEIN, ID_CYCLEOUT);
                    break;

                case ID_CYCLEIN:
                    win_tempcycledir = 1;
                    CheckRadioButton(hDlg, ID_CYCLEOUT, ID_CYCLEIN, ID_CYCLEIN);
                    break;

                case ID_CYCLESTAT:
                    win_tempcyclerand = 0;
                    CheckRadioButton(hDlg, ID_CYCLESTAT, ID_CYCLECHG, ID_CYCLESTAT);
                    break;

                case ID_CYCLECHG:
                    win_tempcyclerand = 1;
                    CheckRadioButton(hDlg, ID_CYCLESTAT, ID_CYCLECHG, ID_CYCLECHG);
                    break;

                case ID_CYCLELOW:
                    win_tempcyclefreq = 0;
                    CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLELOW);
                    break;

                case ID_CYCLEMED:
                    win_tempcyclefreq = 1;
                    CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLEMED);
                    break;

                case ID_CYCLEHIGH:
                    win_tempcyclefreq = 2;
                    CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLEHIGH);
                    break;

                }
        
        }
    return (FALSE);
}

FARPROC lpSelectFullScreen;

extern HANDLE hInst;

int win_fullscreen_count;
char * far win_fullscreen_prompts[20];
char *win_fullscreen_heading;
static struct fullscreenvalues win_fullscreen_values[20];

int xxx_fullscreen_prompt(	/* full-screen prompting routine */
	char *hdg,		/* heading, lines separated by \n */
	int numprompts, 	/* there are this many prompts (max) */
	char * far *prompts,	/* array of prompting pointers */
	struct fullscreenvalues values[], /* array of values */
	int options,		/* future use bits in case we need them */
	int fkeymask		/* bit n on if Fn to cause return */
	)
{
int i;
int Return;

win_fullscreen_count = numprompts;
win_fullscreen_heading = hdg;
win_fullscreen_count = numprompts;
for (i = 0; i < win_fullscreen_count; i++) {
   win_fullscreen_prompts[i] = prompts[i]; 
   win_fullscreen_values[i]  = values[i];
   }

lpSelectFullScreen = MakeProcInstance(SelectFullScreen, hInst);
Return = DialogBox(hInst, "SelectFullScreen", hwnd, lpSelectFullScreen);
FreeProcInstance(lpSelectFullScreen);

if (Return) {
    for (i = 0; i < win_fullscreen_count; i++) {
        values[i] = win_fullscreen_values[i];
    }
    return(0);
    }

return(-1);
}

BOOL FAR PASCAL SelectFullScreen(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{

    int i;
    char temp[80];

    switch (message) {

        case WM_INITDIALOG:
            SetDlgItemText(hDlg, ID_PROMPT00,win_fullscreen_heading);
            for (i = 0; i < win_fullscreen_count; i++) {
                SetDlgItemText(hDlg, ID_PROMPT01+i,win_fullscreen_prompts[i]);
                if (win_fullscreen_values[i].type == 'd' ||
                    win_fullscreen_values[i].type == 'f')
                    sprintf(temp,"%10.5f",win_fullscreen_values[i].uval.dval);
                else if(win_fullscreen_values[i].type == 'i')
                    sprintf(temp,"%d",win_fullscreen_values[i].uval.ival);
                else if(win_fullscreen_values[i].type == 's')
                {
                    strncpy(temp,win_fullscreen_values[i].uval.sval,16);
                    temp[15] = 0;
                }
                else if(win_fullscreen_values[i].type == 'l')
                    strcpy(temp,win_fullscreen_values[i].uval.ch.list[win_fullscreen_values[i].uval.ch.val]);
                else
                    strcpy(temp,win_fullscreen_values[i].uval.sval);
                SetDlgItemText(hDlg, ID_ANSWER01+i,temp);
                }
            return (TRUE);

        case WM_COMMAND:
            switch (wParam) {

                case IDOK:
                    for (i = 0; i < win_fullscreen_count; i++) {
                        GetDlgItemText(hDlg, ID_ANSWER01+i , temp, 20);
                        if (win_fullscreen_values[i].type == 'd' ||
                            win_fullscreen_values[i].type == 'f')
                            win_fullscreen_values[i].uval.dval = atof(temp);
                        else if(win_fullscreen_values[i].type == 'i')
                            win_fullscreen_values[i].uval.ival = atoi(temp);
                        else if(win_fullscreen_values[i].type == 's')
                            strncpy(win_fullscreen_values[i].uval.sval,temp,16);
                        else if(win_fullscreen_values[i].type == 'l')
                            strcpy(win_fullscreen_values[i].uval.ch.list[win_fullscreen_values[i].uval.ch.val],temp);
                        else
                            strcpy(win_fullscreen_values[i].uval.sval,temp);
                    }
                    EndDialog(hDlg, 1);
                    break;
                  
                case IDCANCEL:
                    EndDialog(hDlg, 0);
                    break;

                }
        
        }
    return (FALSE);
}


extern int init3d[];
extern int win_3dspherical;
extern char preview, showbox;
extern int previewfactor, glassestype, whichimage;
extern int xtrans, ytrans, transparent[2], RANDOMIZE;
extern int red_crop_left, red_crop_right;
extern int blue_crop_left, blue_crop_right;
extern int red_bright, blue_bright;
extern	int RAY;
extern	int BRIEF;
extern	int Ambient;
extern	char ray_name[];
extern int Targa_Overlay;
extern int Targa_Out;
extern	int	overlay3d;	    /* 3D overlay flag: 0 = OFF */
extern int xadjust;
extern int eyeseparation;

static int far win_answers[20];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -