Ich führe Wartungsarbeiten an einer Legacy-MFC-Anwendung durch. Wir müssen die Schaltfläche Drucken im Hilfe-Dialog deaktivieren. Es ist kein Drucker mit dem System verbunden und die Anwendung stürzt ab, wenn der Benutzer im Hilfefenster auf die Schaltfläche Drucken klickt.Schaltfläche "Drucken" in HtmlHelp deaktivieren
Der Code verwendet einfach die Standard HtmlHelpA
Methode, um die Windows-Hilfe-Dialog aufzurufen:
void CNiftyView::OnHelp()
{
CString csHelpFile;
csHelpFile.Format("%s/NiftyHelp.chm", NiftyDoc::GetHelpPath());
::HtmlHelpA(m_hWnd, csHelpFile, HH_HELP_CONTEXT, IDH_NIFTY_SECTION);
}
ich gefunden habe Informationen, die wir auf die Schaltfläche Drucken mit einigen Code in der Hilfe HTML Sheet unterdrücken kann (http://www.sagehill.net/docbookxsl/HtmlHelp.html) . Aber das würde eine Neukompilierung der Hilfedatei erfordern, und das würde ich lieber nicht tun. Ich fand auch einige Informationen, die besagt, dass Sie den HTML-Hilfe-Viewer anpassen können, indem Sie die HH_WINTYPE-Struktur jedes Bereichs bearbeiten, aber keine Informationen darüber, wie Sie das tatsächlich tun (http://msdn.microsoft.com/en-us/library/ms524435%28v=vs.85%29.aspx).
Gibt es eine Möglichkeit, diese Schaltfläche Drucken im HTML-Hilfe-Viewer programmatisch zu deaktivieren?
* "Es gibt keinen Drucker an das System angeschlossen und die Anwendung abstürzt, wenn der Benutzer auf die Schaltfläche Druck im Hilfefenster drückt. "Das kommt mir seltsam vor. Sicherlich hat das HTML-Hilfe-Team für den Fall getestet, dass kein Drucker mit dem Computer verbunden war. Tatsächlich wette ich, dass ihre Dev-Maschinen wahrscheinlich keinen Drucker hatten, der an sie angeschlossen war. Stürzt das System ab, wenn auf * andere * Drucktasten geklickt wird? –
Stürzt die HTML-Hilfe ab, wenn Sie versuchen, mit Hilfe einer anderen Anwendung als Ihrer zu drucken? –
Ich denke, es ist auch komisch. Es ist schwierig, eine andere App zum Drucken zu finden, da dies ein eingebettetes System (WES7) ist und nicht das Standardlayout von Apps wie Notepad oder WordPad enthält. – Frecklefoot