Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Narf!

User
  • Registriert

  • Letzter Besuch

Alle Beiträge von Narf!

  1. Meine PreTranslateMessage-Funktion habe ich geändert, um den Accelerator in den Dialog einzubinden: BOOL CProgrammDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message>=WM_KEYFIRST && pMsg->message<=WM_KEYLAST) { return ::TranslateAccelerator(m_hWnd, (HACCEL__ *) hAccelerator, pMsg); }//end if(pMsg->message>=WM_KEYFIRST && pMsg->message<=WM_KEYLAST) return CDialog::PreTranslateMessage(pMsg); }//end BOOL CProgrammDlg::PreTranslateMessage(MSG* pMsg)
  2. LPCKFSEARCH ist nicht deklariert. Habe schon windows.h includiert, hilft nicht.
  3. Hallo an alle, ich habe den WebBrowser als ActiveX-Element auf meinem Dialog. Wenn ich eine Seite mit Links geladen und den Eingabefokus auf dieses Fenster gesetzt habe, kann ich zwar mit den Pfeiltasten die Seite auf und ab scrollen, aber mit der TAB-Taste kann ich die Links nicht anspringen. Wenn ich die selbe Seite im normalen IExplorer aufrufe, geht das. Woran kann das liegen? (MS Visual Studio .NET 2003, C++, MFC, Dialogfeldbasierend)
  4. Jetzt habe ich noch eine Frage dazu: Bezieht sich das ganze auch auf komplette Dateinamen oder nur auf die Erweiterung? Ersteres ist erforderlich.
  5. In der MSDN steht dazu: Mit meinem Programm werden jedoch keine Dateien erstellt. Mein Programm greift auf eine bestimmte Datei zu, die bereits exisitiert.
  6. Alles klar. Das nächste Mal Augen auf!
  7. zu 1. wäre es besser, das schon beim Installieren festzulegen
  8. Heute mal etwas kompliziertes (aus meiner Sicht): Wenn man im Windows Explorer auf eine *.doc-Datei klickt, öffnet sich Word mit der angeklickten Datei. Das gleiche möchte ich mit meinem Programm erreichen. Man klickt auf eine bestimmte Datei und diese wird in meinem Programm angezeigt. 1. Wie bekomme ich Windows dazu, mein Programm dieser Datei zuzuordnen? 2. Wie bekommt mein Programm beim Starten mit, ob und welche Datei geöffnet werden soll? MS VC++ .Net 2003, MFC, Dialog
  9. Es klappt, wie immer. #include "atlutil.h" ... CColorDialog color(RGB(255, 128, 0), CC_FULLOPEN); COLORREF col; TCHAR htmlCol[8]; if(color.DoModal()==IDOK) { col=color.GetColor(); RGBToHtml(col, htmlCol, 8); }//end if(color.DoModal()==IDOK) Da habe ich aber mal noch eine Frage: Warum kommt es oft vor, dass die Dateitypen, die als Argument für eine Funktion vorgegeben sind, nicht funktionieren; wie hier TCHAR statt LPTSTR? :confused:
  10. Hallo mal wieder! Ich sitze nun schon 'ne ganze Weile an dem verflixten Ding: Ich lasse den Nutzer über CColorDialog eine Farbe auswählen, diese möchte ich in die Form #ffffff bringen, um sie in einem HTML-Dokument zu verwenden. Dazu habe ich die Funktion RGBToHtml(COLORREF color, LPTSTR out, long Buffer) gefunden. Meine Funktion sieht so aus: #include "atlutil.h" ... CColorDialog color(RGB(255, 128, 0), CC_FULLOPEN); COLORREF col; LPTSTR htmlCol; if(color.DoModal()==IDOK) { col=color.GetColor(); RGBToHtml(col, htmlCol, 7); }//end if(color.DoModal()==IDOK) Das Problem ist, dass ich keinen Farbwert in htmlCol bekomme. Ich habe es mit LPTSTR *htmlCol und LPTSTR htmlCol[8] versucht, es passierte nichts.
  11. Im "normalen" IExplorer passiert folgendes: Der Nutzer fährt mit dem Maus-Cursor über einen Link, das Ziel des Links wird in der Statusleiste angezeigt. Der Nutzer klickt auf den Link und die verlinkte Seite öffnet sich (oder auch nicht). Was ich tun möchte, ist: Wenn der Nutzer auf den Link geklickt hat, möchte ich mit OnBeforeNavigate() das Ziel herausbekommen, also den String, der normalerweise in der Statusleiste (habe ich keine) angezeigt wird, um diese dann auszuwerten und weiter zu verarbeiten. Ich hoffe mal, dass ich hier die Grenze des Erlaubten nicht überschreite.
  12. Hallo Leute, wie kann ich beim Klicken auf einen Link im IExplorer (als Steuerelement in meinem Dialog) das Ziel abfangen, bevor er die Zielseite öffnet? (VS .Net 2003 C++ MFC)
  13. Hab es hinbekommen. Vielleicht etwas umständlich, aber es geht: void CExplorerTestDlg::MarkiereText(CString Fragment) { //Den gesamten Body-Inhalt des HTML-Dokumentes einlesen, //Fragment-String finden, //danach InsertText einfügen //Neues Dokument mit Markierung laden und in Sicht scrollen LPDISPATCH disp=0; IHTMLDocument2 *doc2=0; IHTMLElement *element=0; IHTMLBodyElement *body=0; IHTMLTxtRange *range=0; CString Text; //macht den Hintergrund orange CString InsertText=" style=\"BACKGROUND-COLOR: ORANGE\" "; static CString Fragment_alt=""; CComBSTR ID=0; int pos=0; int x=0; int y=0; HRESULT res=0; VARIANT_BOOL suc=0; long ac_count=0; //wurde das Fragment zuletzt verwendet? if(Fragment_alt!=Fragment) { disp=m_cExpl.get_Document(); disp->QueryInterface(IID_IHTMLDocument2, (void**) &doc2); disp->Release(); doc2->get_body(&element); doc2->Release(); element->get_innerHTML(&ID); // HTML-Text (mit Tags) laden Text=ID; if(!Fragment_alt.IsEmpty()) //ist letztes Fragment vorhanden? { //altes Fragment suchen pos=Text.Find(Fragment_alt, 0)+Fragment_alt.GetLength(); //[InsertText] löschen Text.Delete(pos, 33); }//end if(Fragment!=Fragment_alt) //neues Fragment suchen pos=Text.Find(Fragment, 0)+Fragment.GetLength(); //[InsertText] bei gefundener Position einfügen Text.Insert(pos, InsertText); for(x=pos+33; x<=Text.GetLength(); x++) { //ab Position, wo Fragment gefunden wurde nach '>' suchen if(Text[x]=='>' && Text[x+1]!='<') Text.Insert(x+1, "[]"); //dort "[]" einfügen //ab Position, wo Fragment gefunden wurde nach "</" suchen if(Text[x]=='<' && Text[x+1]=='/') x=Text.GetLength(); //for-Schleife beenden y++; //Zeichen für Textrange zählen, s.u. }//end for(x=pos+33; x<=Text.GetLength(); x++) ID.Empty(); //[ID] leeren ID.Append(Text); //in [ID] Body-Text laden res=element->put_innerHTML(ID); //geänderden Text im Explorer anzeigen element->QueryInterface(IID_IHTMLBodyElement, (void**) &body); body->createTextRange(&range); //Textbereich anlegen ID.Empty(); //[ID] leeren ID.Append("[]"); //"[]" anfügen range->findText(ID, sizeof(ID), 2, &suc); //nach "[]" suchen //den Textbereich auf y Zeichen erweitern range->moveEnd((BSTR)CComBSTR("character"), (long) y, &ac_count); range->select(); //selektieren (blau markieren) res=range->scrollIntoView(false); //den Bereich in Sicht scrollen //ab hier wieder suchen nach "[]" und löschen, würde sonst mit im Explorer stehen element->get_innerHTML(&ID); Text=ID; pos=Text.Find("[]", 0); Text.Delete(pos, 2); ID.Empty(); ID.Append(Text); element->put_innerHTML(ID); element->Release(); Fragment_alt=Fragment; }//end if(Fragment_alt!=Fragment) }//end void CExplorerTestDlg::MarkierePhrase(CString Fragment) Ich hoffe, ich kann damit weiterhelfen. Wenn jemand einen einfacheren Weg kennt, bitte schreiben.
  14. Es hat sich soeben erledigt. Ich habe das Projekt wieder geöffnet und es läuft wieder. Keine Ahnung was das war. Wenn es möglich ist, kann dieser Beitrag gelöscht werden, denn er bringt ja nicht so viel.
  15. Hallo wiedermal, ich habe einen Hauptdialog in dem ein anderer Dialog mit DoModal geöffnet wird. Dieser Dialog hat ein Text-Edit-Feld, in das nur Zahlen eingetragen werden können. Wenn ich eine Zahl eingeben will, springt er gleich nach dem Tastendruck raus mit folgender Fehlermeldung: "Unbehandelte Ausnahme bei 0x00534125 in [Programm].exe: 0xC00000FD: Stack overflow." Und zeigt die Datei chkstk.asm bei folgendem Inhalt an: (--> ist der gelbe Pfeil am Seitenrand) *** probepages: sub ecx,_PAGESIZE_ ; yes, move down a page sub eax,_PAGESIZE_ ; adjust request and... --> test dword ptr [ecx],eax ; ...probe it cmp eax,_PAGESIZE_ ; more than one page requested? jae short probepages ; no *** Das Erstaunliche ist, dass es vorher schonmal funktioniert hat. Der Dialog hat eine eigene Klasse und wird so aufgerufen: DlgKlasse dlg; if(dlg.DoModal()==IDOK) ... Wo liegt das Speicherproblem?
  16. Klappt super. Danke.
  17. Hallo an alle, gibt es eine schnelle Methode, den Inhalt einer Textdatei auf einmal in eine CString-Variable zu speichern? Zur Zeit mache ich das Zeichenweise. Oder gibt es eine Möglichkeit eine Datei zeilenweise auszulesen, wobei die Länge der Zeile bzw. des Puffers variieren kann? Im Moment muss ich immer eine konstante Pufferlänge mit angeben. Ich arbeite mit fstream(.h) und MFC.
  18. Ich habe es mal so probiert: ... IHTMLTxtRange *range=0; IHTMLBodyElement *body=0; CComBSTR ID=0; ID.Empty(); ID.Append([ID-Text]); element->QueryInterface(IID_IHTMLBodyElement, (void**) &body); body->CreateTextRange(&range); range->findText(ID, sizeof(range), 2, &suc); res=range->scrollIntoView(true); Aber das klappt auch nicht.
  19. Haut bei mir nicht hin. Deine Zeile habe ich angefügt und ein Element markiert, was direkt unter dem Fenster steht. Es wird nicht gescrollt.
  20. Das habe ich auch schon probiert. Allerdings muss man dort eine VARIANT-Variable mitgeben, in der eine ganze Menge weiterer Variablen stehen. Zu denen ist mir nicht so klar, welche Parameter ich eintragen muss bzw. wo ich die herbekommen soll.
  21. Hallo an alle, ich habe einen Dialog mit einem IE-Fenster in das ich ein HTML-Dokument geladen habe. Mit dem folgenden Beispiel suche ich mir eine ID aus den HTML-Tags, ergänze dieses Tag mit einem Style-Aufruf, der die Hintergrundfarbe dieser Zeile ändert. Das klappt auch ganz gut, aber wenn die Zeile außerhalb des sichtbaren Bereichs des IE-Fensters liegt, kann man als Nutzer damit nicht viel anfangen. Wie kann ich diese Zeile nach der Änderung in den sichtbaren Bereich scrollen? (VS .NET 2003 C++ MFC) LPDISPATCH disp=0; IHTMLDocument2 *doc2=0; IHTMLElement *element=0; CString suchID="[ID-Text]"; CString Text; CComBSTR ID=0; CString InsertText=" style=\"BACKGROUND-COLOR: ORANGE\" "; int pos=0; disp=m_cExpl.get_Document(); disp->QueryInterface(IID_IHTMLDocument2, (void**) &doc2); disp->Release(); doc2->get_body(&element); doc2->Release(); element->get_innerHTML(&ID); Text=ID; pos=Text.Find(suchID, 0)+strlen(suchID); Text.Insert(pos, InsertText); ID.Empty(); ID.Append(Text); res=element->put_innerHTML(ID); //Hier soll die geänderte Zeile im Fenster erscheinen
  22. :floet: Hallo an alle! :floet: Ich lade in den WMP Sounddateien (mp3, wav), die aber nur teilweise abgespielt werden sollen. Diese Schnipsel möchte ich in eine wav-Datei aufnehmen, um diese dann als gesamte Sounddatei abspielen zu können. Hat jemand 'ne Idee wie das gehen könnte?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.