如何使用对话框右上角的那个“ ?” 按钮?(50分)

  • 主题发起人 主题发起人 Crab
  • 开始时间 开始时间
C

Crab

Unregistered / Unconfirmed
GUEST, unregistred user!
当一个 Dialog 的 BorderIcons 设为 [biSystemMenu,biHelp] 时,窗口的右上角便出现
一个小?,Windows 用它来做屏幕相关的 Help,单击窗口的某部分便会弹出本部分的
使用方法。这是如何实现的?
 
被?单击的窗口控件的HelpContent设置为HLP文件中的ContentID,即可实现
 
试试!

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 Documents/新建文件夹/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.
 
agree OopsWare
 
slicker 的方法最简单,谢谢 oopsware
 
<h1><font color="#0000FF">测试</font></h1>
 
<p><a href="http://hawkpond.topcool.net">我的主页</a></p>
 
后退
顶部