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

📄 dialogs.c

📁 C语言编程中算法数据结构中的树行代码
💻 C
📖 第 1 页 / 共 5 页
字号:

}


//=============================================================================
//
//  LongLineSettingsDlgProc()
//
//  Controls: 100 Edit
//            101 Radio1
//            102 Radio2
//
extern int iLongLineMode;

BOOL CALLBACK LongLineSettingsDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{

  static int *piNumber;

  switch(umsg)
  {

    case WM_INITDIALOG:
      {

        piNumber = (int*)lParam;

        SetDlgItemInt(hwnd,100,*piNumber,FALSE);
        SendDlgItemMessage(hwnd,100,EM_LIMITTEXT,15,0);

        if (iLongLineMode == EDGE_LINE)
          CheckRadioButton(hwnd,101,102,101);
        else
          CheckRadioButton(hwnd,101,102,102);

        CenterDlgInParent(hwnd);

      }
      return TRUE;


    case WM_COMMAND:

      switch(LOWORD(wParam))
      {

        case IDOK: {

          BOOL fTranslated;

          int iNewNumber = GetDlgItemInt(hwnd,100,&fTranslated,FALSE);

          if (fTranslated)
          {
            *piNumber = iNewNumber;

            iLongLineMode = (IsDlgButtonChecked(hwnd,101)) ? EDGE_LINE : EDGE_BACKGROUND;

            EndDialog(hwnd,IDOK);
          }

          else
            PostMessage(hwnd,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hwnd,100)),1);

          }
          break;


        case IDCANCEL:
          EndDialog(hwnd,IDCANCEL);
          break;

      }

      return TRUE;

  }

  return FALSE;

}


//=============================================================================
//
//  LongLineSettingsDlg()
//
BOOL LongLineSettingsDlg(HWND hwnd,UINT uidDlg,int *iNumber)
{

  int iResult;

  iResult = DialogBoxParam(
              g_hInstance,
              MAKEINTRESOURCE(uidDlg),
              hwnd,
              LongLineSettingsDlgProc,(LPARAM)iNumber);

  return (iResult == IDOK) ? TRUE : FALSE;

}


//=============================================================================
//
//  TabSettingsDlgProc()
//
//  Controls: 100 Edit
//            101 Edit
//            102 Check
//
extern int iTabWidth;
extern int iIndentWidth;
extern BOOL bTabsAsSpaces;

BOOL CALLBACK TabSettingsDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{

  switch(umsg)
  {

    case WM_INITDIALOG:
      {

        SetDlgItemInt(hwnd,100,iTabWidth,FALSE);
        SendDlgItemMessage(hwnd,100,EM_LIMITTEXT,15,0);

        SetDlgItemInt(hwnd,101,iIndentWidth,FALSE);
        SendDlgItemMessage(hwnd,101,EM_LIMITTEXT,15,0);

        if (bTabsAsSpaces)
          CheckDlgButton(hwnd,102,BST_CHECKED);

        CenterDlgInParent(hwnd);

      }
      return TRUE;


    case WM_COMMAND:

      switch(LOWORD(wParam))
      {

        case IDOK: {

          BOOL fTranslated1,fTranslated2;

          int iNewTabWidth = GetDlgItemInt(hwnd,100,&fTranslated1,FALSE);
          int iNewIndentWidth = GetDlgItemInt(hwnd,101,&fTranslated2,FALSE);

          if (fTranslated1 && fTranslated2)
          {
            iTabWidth = iNewTabWidth;
            iIndentWidth = iNewIndentWidth;

            bTabsAsSpaces = (IsDlgButtonChecked(hwnd,102)) ? TRUE : FALSE;

            EndDialog(hwnd,IDOK);
          }

          else
            PostMessage(hwnd,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hwnd,(fTranslated1) ? 101 : 100)),1);

          }
          break;


        case IDCANCEL:
          EndDialog(hwnd,IDCANCEL);
          break;

      }

      return TRUE;

  }

  return FALSE;

}


//=============================================================================
//
//  TabSettingsDlg()
//
BOOL TabSettingsDlg(HWND hwnd,UINT uidDlg,int *iNumber)
{

  int iResult;

  iResult = DialogBoxParam(
              g_hInstance,
              MAKEINTRESOURCE(uidDlg),
              hwnd,
              TabSettingsDlgProc,(LPARAM)iNumber);

  return (iResult == IDOK) ? TRUE : FALSE;

}


//=============================================================================
//
//  SelectEncodingDlgProc()
//
//  Controls: 100 Combo
//            IDC_CPINFO
//
BOOL CALLBACK SelectEncodingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
  static int *piOption;

  switch(umsg)
  {
    case WM_INITDIALOG:
      {
        char tch[512], tchFmt[64];
        char *p1, *p2;
        CPINFOEX cpi;

        piOption = (int*)lParam;

        GetCPInfoEx(GetACP(),0,&cpi);
        GetDlgItemText(hwnd,101,tchFmt,COUNTOF(tchFmt));
        wsprintf(tch,tchFmt,cpi.CodePageName);
        lstrcat(tch,"|");
        p1 = tch;
        while (p2 = strchr(p1,'|')) {
          *p2++ = '\0';
          if (*p1)
            SendDlgItemMessage(hwnd,100,CB_ADDSTRING,0,(LPARAM)p1);
          p1 = p2;
        }

        SendDlgItemMessage(hwnd,100,CB_SETCURSEL,(WPARAM)*piOption,0);
        SendDlgItemMessage(hwnd,100,CB_SETEXTENDEDUI,TRUE,0);

        if (bSkipUnicodeDetection)
          CheckDlgButton(hwnd,IDC_NOUNICODEDETECTION,BST_CHECKED);

        CenterDlgInParent(hwnd);
      }
      return TRUE;


    case WM_COMMAND:
      switch(LOWORD(wParam))
      {
        case IDOK: {
            *piOption = SendDlgItemMessage(hwnd,100,CB_GETCURSEL,0,0);
            bSkipUnicodeDetection = (IsDlgButtonChecked(hwnd,IDC_NOUNICODEDETECTION) == BST_CHECKED) ? 1 : 0;
            EndDialog(hwnd,IDOK);
          }
          break;

        case IDCANCEL:
          EndDialog(hwnd,IDCANCEL);
          break;
      }
      return TRUE;
  }
  return FALSE;
}


//=============================================================================
//
//  SelectEncodingDlg()
//
BOOL SelectEncodingDlg(HWND hwnd,int *iOption)
{

  int iResult;

  iResult = DialogBoxParam(
              g_hInstance,
              MAKEINTRESOURCE(IDD_ENCODING),
              hwnd,
              SelectEncodingDlgProc,
              (LPARAM)iOption);

  return (iResult == IDOK) ? TRUE : FALSE;

}

//=============================================================================
//
//  SelectLineEndingDlgProc()
//
//  Controls: 100 Combo
//            IDC_CONSISTENTEOLS
//
BOOL CALLBACK SelectLineEndingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
  static int *piOption;

  switch(umsg)
  {
    case WM_INITDIALOG:
      {
        char tch[512];
        char *p1, *p2;

        piOption = (int*)lParam;

        // Load options
        GetDlgItemText(hwnd,101,tch,COUNTOF(tch));
        lstrcat(tch,"|");
        p1 = tch;
        while (p2 = strchr(p1,'|')) {
          *p2++ = '\0';
          if (*p1)
            SendDlgItemMessage(hwnd,100,CB_ADDSTRING,0,(LPARAM)p1);
          p1 = p2;
        }

        SendDlgItemMessage(hwnd,100,CB_SETCURSEL,(WPARAM)*piOption,0);
        SendDlgItemMessage(hwnd,100,CB_SETEXTENDEDUI,TRUE,0);

        if (bFixLineEndings)
          CheckDlgButton(hwnd,IDC_CONSISTENTEOLS,BST_CHECKED);

        CenterDlgInParent(hwnd);
      }
      return TRUE;


    case WM_COMMAND:
      switch(LOWORD(wParam))
      {
        case IDOK: {
            *piOption = SendDlgItemMessage(hwnd,100,CB_GETCURSEL,0,0);
            bFixLineEndings = (IsDlgButtonChecked(hwnd,IDC_CONSISTENTEOLS) == BST_CHECKED) ? 1 : 0;
            EndDialog(hwnd,IDOK);
          }
          break;

        case IDCANCEL:
          EndDialog(hwnd,IDCANCEL);
          break;
      }
      return TRUE;
  }
  return FALSE;
}


//=============================================================================
//
//  SelectLineEndingDlg()
//
BOOL SelectLineEndingDlg(HWND hwnd,int *iOption)
{

  int iResult;

  iResult = DialogBoxParam(
              g_hInstance,
              MAKEINTRESOURCE(IDD_EOLMODE),
              hwnd,
              SelectLineEndingDlgProc,
              (LPARAM)iOption);

  return (iResult == IDOK) ? TRUE : FALSE;

}


//=============================================================================
//
//  InfoBoxDlgProc()
//
//
typedef struct _infobox {
  int    uidMessage;
  LPCSTR lpstrSetting;
} INFOBOX, *LPINFOBOX;

BOOL CALLBACK InfoBoxDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
  char tch[512];
  static LPINFOBOX lpib;

  switch(umsg)
  {
    case WM_INITDIALOG:
      lpib = (LPINFOBOX)lParam;
      SendDlgItemMessage(hwnd,IDC_INFOBOXICON,STM_SETICON,
        (WPARAM)LoadIcon(NULL,IDI_EXCLAMATION),0);
      GetString(lpib->uidMessage,tch,COUNTOF(tch));
      SetDlgItemText(hwnd,IDC_INFOBOXTEXT,tch);
      CenterDlgInParent(hwnd);
      return TRUE;

    case WM_COMMAND:
      switch(LOWORD(wParam))
      {
        case IDOK:
        case IDCANCEL:
        case IDYES:
        case IDNO:
          if (IsDlgButtonChecked(hwnd,IDC_INFOBOXCHECK))
            IniSetInt("Suppressed Messages",lpib->lpstrSetting,1);
          EndDialog(hwnd,LOWORD(wParam));
          break;
      }
      return TRUE;
  }
  return FALSE;
}


//=============================================================================
//
//  InfoBox()
//
//
int InfoBox(int iType,int uidMessage,LPCSTR lpstrSetting)
{

  HWND hwnd;
  int idDlg;
  INFOBOX ib;

  if (IniGetInt("Suppressed Messages",lpstrSetting,0))
    return (iType == MBYESNO) ? IDYES : IDOK;

  idDlg = (iType == MBYESNO) ? IDD_INFOBOX2 : IDD_INFOBOX;

  ib.uidMessage = uidMessage;
  ib.lpstrSetting = lpstrSetting;

  if (!(hwnd = GetFocus()))
    hwnd = hwndMain;

  MessageBeep(MB_ICONEXCLAMATION);

  return DialogBoxParam(
           g_hInstance,
           MAKEINTRESOURCE(idDlg),
           hwnd,
           InfoBoxDlgProc,
           (LPARAM)&ib);

}



//  End of Dialogs.c

⌨️ 快捷键说明

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