Как контролировать / удалять границы встроенного файла справки chm в приложении delphi windows/vcl?

У меня есть Delphi Windows/VCL (XE7) программа, которая встраивает справочные страницы CHM в различные панели программы. Это в основном работает нормально, но на панелях всегда отображается уродливая утопленная рамка (выглядит очень как окна 95). Вот скриншот:

Кто-нибудь знает, как вывести файлы справки без рамки? Ниже приведен код, который я использую на данный момент. Спасибо за любую помощь!

Procedure DoShowEmbeddedHelp(TheWinName: string; ThePanel: TPanel;
  var HelpWinHandle: integer; HelpTopic: string; var LastTopic: string;
  ByContext: boolean; ContextData: integer; var LastContext: integer);

var
  wintypedef: THHWinType;
  hf, fn: string;
begin
  hf := Gl.ProgramPath + 'leap.chm';
  if not FileExists(hf) then
    MessageDlg('Help file not found: ' + hf, mtError, [mbOK], 0)
  else if ((not ByContext) and (HelpTopic <> LastTopic)) or
    (ByContext and (ContextData <> LastContext)) then
   begin
     if not ByContext then
       begin
         LastTopic := HelpTopic;
         LastContext := 0;
       end
      else
        begin
          LastContext := ContextData;
          LastTopic := '';
        end;
      fn := hf + '>' + TheWinName;
      FillChar(wintypedef, sizeof(wintypedef), 0);

      with wintypedef do
        begin
          cbStruct := sizeof(wintypedef);      
          fUniCodeStrings := false;        
          pszType := PAnsiChar(TheWinName); 
          fsValidMembers := 
            HHWIN_PARAM_PROPERTIES or 
            HHWIN_PARAM_STYLES or 
            HHWIN_PARAM_EXSTYLES or 
            HHWIN_PARAM_RECT or 
            HHWIN_PARAM_NAV_WIDTH or 
            HHWIN_PARAM_SHOWSTATE or 
            HHWIN_PARAM_TB_FLAGS or 
            HHWIN_PARAM_EXPANSION; 

          fsWinProperties :=
            HHWIN_PROP_NOTITLEBAR or 
            HHWIN_PROP_NO_TOOLBAR or HHWIN_PROP_NODEF_STYLES or
            HHWIN_PROP_NODEF_EXSTYLES or
            HHWIN_PROP_TRI_PANE; 

      wintypedef.pszCaption := ''; 
      wintypedef.dwStyles := WS_VISIBLE or WS_CHILDWINDOW;
      wintypedef.dwExStyles := WS_EX_LEFT; 
      wintypedef.rcWindowPos := Rect(0, 0, ThePanel.ClientWidth, ThePanel.ClientHeight);
      wintypedef.nShowState := SW_SHOW; 
      wintypedef.fsToolBarFlags := HHWIN_BUTTON_PRINT or HHWIN_BUTTON_BACK;
      fNotExpanded := true;
    end;

  if integer(HtmlHelp(0, nil, HH_SET_WIN_TYPE, DWORD(@wintypedef))) < 0 then
    ShowMessage('Help failed on topic: ' + HelpTopic)
  else if ByContext then
    HelpWinHandle := HtmlHelp(ThePanel.Handle, PChar(fn), HH_HELP_CONTEXT, ContextData)
  else
    HelpWinHandle := HtmlHelp(ThePanel.Handle, PChar(fn), HH_DISPLAY_TOPIC, DWORD(PChar('Expressions\' + HelpTopic + '.htm')));
    end;
 end;

0 ответов

Другие вопросы по тегам