📄 dlgxpnd.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 + -