messagebox 中如何响应帮助按钮的事件?(在线........)(50分)

  • 主题发起人 主题发起人 TMXYB
  • 开始时间 开始时间
T

TMXYB

Unregistered / Unconfirmed
GUEST, unregistred user!
如:
MessageBox(handle,'確定要刪除當前記錄?','確定',MB_OKCANCEL+MB_ICONEXCLAMATION+MB_DEFBUTTON2+MB_HELP);
不只 帮助按钮的返回值是什么,或如何在点它时响应我的调用帮助过程 (.chm ,假如该过程为:help_but.onclick(self) )
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var m: TMsgBoxParams;
h: THelpInfo;
procedure CallBk(var hh: THelpInfo);
begin
Application.HelpJump('TongMIS');
end;

begin
Application.HelpFile:='C:/Documents and Settings/Administrator/My do
cuments/新建文件夹/TONGMIS.HLP';
// h.iContextType:=HELPINFO_MENUITEM;
// h.iCtrlId:=101;
h.hItemHandle:=Handle;
// h.dwContextId:=101;
h.cbSize:=SizeOf(h);
m.hwndOwner:=Handle;
m.lpszText:='Displaied String!';
m.lpszCaption:='Cap';
m.hInstance:=HInstance;
m.dwStyle:=MB_USERICON + MB_YESNO + MB_HELP;
m.lpszIcon:='1';
m.dwContextHelpId:=101;
m.lpfnMsgBoxCallback:=@CallBk;
m.dwLanguageId:=$0804;
m.cbSize:=Sizeof(m);
MessageBoxIndirect(m);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
FlashWindow(Application.Handle, True)
end;

end.


 
改变参数方法我试过,好像不行。注意,我的是.chm 帮助。所以我的调用帮助过程的参数与 m.lpfnMsgBoxCallback 不一致,也就不能 m.lpfnMsgBoxCallback:=@CallBk;
了。
谢过了,看有没有更好的答案。
 
经过改装后可以拉,谢谢forgot2002。
 
呵呵,帮助是可以调用了,可回过头来,这是的 OK,CANCEL 又如何调用呢。MessageBoxIndirect(m) 返回值为int
可语句 if MessageBoxIndirect(m)=idok then
//出现类型不匹配。=1 也不行。
 
后退
顶部