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

📄 dlgxpnd.dpr

📁 这一系列是我平时收集的pascal深入核心变成
💻 DPR
字号:
program DlgXpnd;

{$R DlgXpnd.res}

uses Windows, Messages, ExpndBox in 'ExpndBox.pas';

const
  IDD_DLGXPAND = 101; // 对话框模板资源ID
  IDI_DLGXPND  = 102; // 对话框图标资源ID
  IDC_OPTIONS  = 1007; // 扩大or缩小按钮ID
  IDC_DEFAULTBOX = 1029; // '预设区'控件ID

  // WM_INITDIALOG消息处理
function DlgXpnd_OnInitDialog(hWnd, hWndFocus: HWND; lParam: LPARAM): BOOL;
begin
  ExpandBox(FALSE, hWnd, IDC_DEFAULTBOX); // 首次缩小对话框
  SendMessage(hWnd, WM_SETICON, ICON_BIG, // 设置对话框图标
    LoadIcon(Hinstance, MakeIntResource(IDI_DLGXPND)));
  Result := TRUE; // 允许Windows设置焦点给hWndFocus
end;

  // WM_COMMAND消息处理
procedure DlgXpnd_OnCommand(hWnd: HWND; id: Integer; hWndCtl: HWND; codeNotify: UINT);
var
  fExpanded: BOOL;
  nLen: Integer;
  szText: array[0..20] of Char;
begin
  case (id) of
    IDOK, IDCANCEL:
      begin
        EndDialog(hWnd, id); // 关闭对话框
      end;

    IDC_OPTIONS:
      begin
        if (codeNotify <> BN_CLICKED) then Exit; // 不是由单击触发
        nLen := GetWindowText(hWndCtl, szText, Sizeof(szText)); // 获取按钮文字
        fExpanded := (szText[nLen - 1] = '<'); // 扩大还是缩小
        ExpandBox(not fExpanded, hWnd, IDC_DEFAULTBOX); // 调整对话框
        SetFocus(GetNextDlgTabItem(hWnd, hWndCtl, FALSE)); // 转移焦点
        if fExpanded then lstrcpy(@szText[nLen - 2], '>>') else lstrcpy(@szText[nLen - 2], '<<');
        SetWindowText(hWndCtl, szText); // 修改按钮文字
      end;
  end;
end;

  // 对话框消息处理回调函数
function DlgXpnd_DlgProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
begin
  Result := FALSE;
  case (uMsg) of
    WM_INITDIALOG:
      Result := BOOL(SetWindowLong(hWnd, DWL_MSGRESULT,
        Longint(DlgXpnd_OnInitDialog(hWnd, wParam, lParam))));
        
    WM_COMMAND:
      DlgXpnd_OnCommand(hWnd, LOWORD(wParam), lParam, HIWORD(wParam));
  end;
end;

begin
  DialogBox(HInstance, MakeIntResource(IDD_DLGXPAND), 0, @DlgXpnd_DlgProc);
end.

⌨️ 快捷键说明

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