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

📄 mdllsdlg.pas

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

interface

uses Windows;

  // modalless对话框过程
function MdllsDlg_DlgProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;

implementation

uses Messages, Modalles;

  // modalless对话框WM_INITDIALOG消息处理
function MdllsDlg_OnInitDialog(hWnd, hWndFocus: HWND; lParam: LPARAM): BOOL;
begin
  Result := TRUE; // 允许Windows设置焦点给hWndFocus
end;

  // modalless对话框WM_COMMAND消息处理
procedure MdllsDlg_OnCommand(hWnd: HWND; id: Integer; hWndCtl: HWND; codeNotify: UINT);
begin
  case (id) of
    IDOK, IDCANCEL: // 隐藏对话框, 并结束Modalless_ShowDlg()的消息循环
      Modalless_EndDlg(hWnd, id);
  end;
end;

  // modalless对话框WM_SHOWWINDOW消息处理
procedure MdllsDlg_OnShowWindow(hWnd: HWND; fShow: BOOL; Status: UINT);
begin
  if (fShow) then // 设第一个含WS_TABSTOP风格的控件有焦点
    SetFocus(GetNextDlgTabItem(hWnd, 0, FALSE));
end;

  // modalless对话框过程
function MdllsDlg_DlgProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
begin
  Result := FALSE; // 返回FALSE则表示消息未处理, 则DefDlgProc()会作默认处理
  case (uMsg) of
    WM_INITDIALOG:
      Result := BOOL(SetWindowLong(hWnd, DWL_MSGRESULT,
        Longint(MdllsDlg_OnInitDialog(hWnd, wParam, lParam))));

    WM_COMMAND:
      MdllsDlg_OnCommand(hWnd, LOWORD(wParam), lParam, HIWORD(wParam));

    WM_SHOWWINDOW:
      MdllsDlg_OnShowWindow(hWnd, BOOL(wParam), lParam);
  end;
 // 注意: 通常, 如果对话框过程处理了消息, 应该返回TRUE, 则DefDlgProc()不再作处理,
 // 不过对于WM_SHOWWINDOW, 我们需要DefDlgProc()作一些默认处理, 所以此处返回FALSE
end;

end.

⌨️ 快捷键说明

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