自定义公用对话框的一些Label:
procedure TForm1.OpenDialog1Show(Sender: TObject);
{First, we need to determine identifiers of dialog's
controls, they are following:}
const
LB_FILETYPES_ID = 1089; // "File types:" label
LB_FILENAME_ID = 1090; // "File name:" label
LB_DRIVES_ID = 1091; // "Look in:" label
Str1 = 'Four';
Str2 = 'Five';
Str3 = 'One';
Str4 = 'Two';
Str5 = 'Three';
var
hOpenDialog: HWND;
begin
hOpenDialog := GetParent(OpenDialog1.Handle);
SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idOk, Longint(PChar(Str1)));
SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idCancel, Longint(PChar(Str2)));
SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILETYPES_ID, Longint(PChar(Str3)));
SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILENAME_ID, Longint(PChar(Str4)));
SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_DRIVES_ID, Longint(PChar(Str5)));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
***********
procedure TForm1.PrintDialog1Show(Sender: TObject);
begin
SetWindowText(GetDlgItem(PrintDialog1.Handle, idOk), '&OK2');
SetWindowText(GetDlgItem(PrintDialog1.Handle, idCancel), '&Cancel2');
SetWindowText(GetDlgItem(PrintDialog1.Handle, 1025), '&Properties2');
end;
// to Enumerate Control - IDs:
function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall;
var
buf, Caption: array [0..255] of char;
begin
Result := True;
GetClassname(wnd, buf, 256);
GetWindowText(wnd, Caption, 256);
Lines.Add(Format('ID: %d, class: %s, caption: %s',
[GetDlgCtrlID(wnd), buf, Caption]));
end;
procedure TForm1.PrintDialog1Show(Sender: TObject);
begin
memo1.Clear;
EnumChildWindows(Printdialog1.Handle, @EnumProc, Integer(memo1.Lines));
end;
注意,OpenDialog.Handle不是那个窗口的Handle,需要用GetParent(OpenDialog.Handle)来获取真正的Handle。
因此EnumChildWindows对于OpenDialog来说,应该是:
EnumChildWindows(GetParent(OpenDialog1.Handle),@EnumProc,Integer(Memo1.Lines));
{ Win2K OpenDialog的ID和Class信息:
ID: 1091, class: Static, caption: 查找范围(&I):
ID: 1137, class: ComboBox, caption:
ID: 1088, class: Static, caption:
ID: 1088, class: ToolbarWindow32, caption:
ID: 1120, class: ListBox, caption:
ID: 1090, class: Static, caption: 文件名(&N):
ID: 1148, class: ComboBoxEx32, caption:
ID: 1148, class: ComboBox, caption:
ID: 1148, class: Edit, caption:
ID: 1089, class: Static, caption: 文件类型(&T):
ID: 1136, class: ComboBox, caption:
ID: 1040, class: Button, caption: 以只读方式打开(&R)
ID: 1, class: Button, caption: 打开(&O)
ID: 2, class: Button, caption: 取消
ID: 1038, class: Button, caption: 帮助(&H)
ID: -1, class: ScrollBar, caption:
ID: 0, class: #32770, caption:
}
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/68433.html