Toolbar Tooltips unter Win98



  • Hi Leute!

    Ich hab ein kleines Problem mit meiner Toolbar: Die Toolbar hat halt Tooltips, die angezeigt werden sollen, wenn der User ca. 1 Sekunde auf dem Toolbar-Button stehen bleibt. Funzt auch wunderbar, solange man Windows XP oder Windows NT hat. Jetzt hab ichs aber mal auf meinem Notebook mit Windows 98 ausprobiert: Speicherzugriffsverletzung!

    Wisst ihr vielleicht, was ich an folgendem Code, den ich aus der MSDN kopiert habe, nicht richtig sein kann??? Mit dem Debugger komm ich leider auch nicht weiter, weil der mir einfach nicht sagt, WO das Programm abstüzt. Benutze den C++ Builder 4.

    Hier meine WM_NOTIFY-Message...

    case WM_NOTIFY:
                    {
                            NMHDR* pnmhdr = reinterpret_cast<NMHDR*>(lParam);
    
                            switch(pnmhdr->code)
                            {
                                    case TTN_GETDISPINFO:
                                    {
                                            LPTOOLTIPTEXT lpttt;
    
                                            lpttt = (LPTOOLTIPTEXT) lParam;
                                            lpttt->hinst = gInstance;
    
                                            int idButton = lpttt->hdr.idFrom;
                                            char tooltip_info[STDLINE+1];
                                            (void)strcpy(tooltip_info, "");
    
                                            switch(idButton)
    		                	{
                                                    case IDM_FILE_NEW:
                                                            (void)strcpy(tooltip_info, "New(Ctrl+N)");
                                                            break;
                                                    case IDM_FILE_OPEN:
                                                            (void)strcpy(tooltip_info, "Open (Ctrl+O)");
                                                            break;
                                                    case IDM_FILE_SAVE:
                                                            (void)strcpy(tooltip_info, "Save (Ctrl+S)");
                                                            break;
                                                    case IDM_EDIT_UNDO:
                                                            (void)strcpy(tooltip_info, "Undo last action (Ctrl+Z)");
                                                            break;
                                                    case IDM_EDIT_CUT:
                                                            (void)strcpy(tooltip_info, "Cut (Ctrl+X)");
                                                            break;
                                                    case IDM_EDIT_COPY:
                                                            (void)strcpy(tooltip_info, "Copy (Ctrl+C)");
                                                            break;
                                                    case IDM_EDIT_PASTE:
                                                            (void)strcpy(tooltip_info, "Paste (Ctrl+P)");
                                                            break;
                                                    case IDM_EDIT_DELETE:
                                                            (void)strcpy(tooltip_info, "Delete (Del)");
                                                            break;
                                                    case IDM_EDIT_FIND:
                                                            (void)strcpy(tooltip_info, "Find (Ctrl+F)");
                                                            break;
                                            }
                                            lpttt->lpszText = tooltip_info;
                                            break;
                                    }
                            }
                            return 0;
                    }
    

    Grüsse,
    ~code_pilot



  • Antworten siehe hier.



  • Hmm... 👎



  • nirsaja schrieb:

    Hmm... 👎

    dito



  • MiC++ha schrieb:

    nirsaja schrieb:

    Hmm... 👎

    dito

    dito 👎

    Bannt den Crossposter.



  • 🤡 kleiner Nachtrag dazu: Es funktioniert wieder! Die Lösung: Einfach mal Win 98 neu starten!!! War mir'n bissel zu peinlich dahitner zu posten "Jetzt gehts wieder" ... naja tshculdige für diesen Post ... ihr könnt ihn auch löschen...

    code_pilot


Anmelden zum Antworten