statuszeilen text setzten



  • Unglücklich formuliert?

    Du schreibst:

    wie ändere ich den Text in der StatusZeile ??

    Wenn Du ihn ändern willst, steht ja offensichtlich ja was drin, oder?
    Wie kommt denn das da rein, wenn nicht von Dir reingeschrieben?

    Also, Du änderst den Text genauso wie Du ihn reinbekommen hast...



  • hi,

    reingefalln. :p beim erstellen der statuszeile gibt man einen text an (- eigentlich der titel), der automatisch bei erstellen dort hineingeschrieben wird. somit steht von anfang an ein text in stattuszeile und meine frage ist jetzt, wie man ihn ändert.

    ja ok, das hätte man genau forumieren können. trotzdem brauch ich hilfe.

    lw



  • SetWindowText



  • Original erstellt von <??>:
    SetWindowText

    hm.. guck doch mal hier:

    Original erstellt von Lawilog:
    [...]* SendMessage(hStausBar, WM_SETTEXT,...)
    * und jetzt auch noch ->SetWindowText(...)<-
    * DrawStatusText(...) hab ich probiert und es funktioniert auch, jedoch wird der text nicht im style der statuszeile ausgegeben.
    [...]



  • tja 🙂



  • SetWindowText funzt aber!!! 😡 😡 😡



  • SendMessage(hStatusbar, SB_SETTEXT, iNummerdesPanels, MeinText);



  • Luckie, lies doch erstmal, bevor du sowas postest!



  • Original erstellt von WebFritzi:
    Luckie, lies doch erstmal, bevor du sowas postest!

    mag aber sein das Lawilog das mit den iNummerdesPanels versehentlich vergessen hat...



  • WebFritzi, denk doch erstmal, bevor du sowas postest!



  • Naja, man sollte die MSDN schon ordentlich lesen können...



  • bevor ihr euch die kopfe vom leib reißt :o : soll ich nicht besser erstmal code posten ? 🙄 (wird aber erst morgen)

    lw



  • JA



  • hi,

    hat sich erstmal erledigt. (wen interessiert warum, der ließt weiter. 😃 )

    ich hab alles rausgenommen, was zu meinem projekt gehört und hab nur das notwendige und das statuszeilen-betreffende zeugs dringelassen. und das geht jetzt. also werde ich jetzt mal auf eine lange fehlersuche einstellen. 🙄 😞

    und hier für alle die, die z.b. über die such-funktion hierein gekommen sind und und ein ähnliches problem haben: (sonst hätte ich mir ja umsonst die arbeit gemacht, alles andere rauszunehmen 🙄 😃 ;):

    #include <windows>
    #include <commctrl>
    
    using namespace std;
    
    LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
    
    HINSTANCE hInstance;
    
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCommandLine, int iCmdShow) {
        MSG msg;
        HWND hWnd;
    
        WNDCLASSEX wc = {sizeof(WNDCLASSEX),
                        CS_HREDRAW | CS_VREDRAW | CS_OWNDC,
                        MainWndProc, 0, 0, hInst,
                        NULL,
                        LoadCursor(NULL, IDC_ARROW),
                        CreateSolidBrush(RGB(0, 153, 51)),
                        NULL,
                        "myclass",
                        NULL};
    
        hInstance = hInst;
    
        if(! RegisterClassEx(&wc)) {
            return -1;
        }
    
        hWnd = CreateWindow("myclass",
            "bla bla bla",
            WS_TILED | WS_CAPTION | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_MAXIMIZE,
            0, 0,//x, y
            600, 400,//width, height
            NULL, NULL, hInst, NULL);
    
        if(! hWnd) {
            return -1;
        }
    
        ShowWindow(hWnd, iCmdShow);
        UpdateWindow(hWnd);
    
        while (GetMessage(&msg, NULL, 0, 0) != 0)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return (int)msg.wParam;
    }
    
    LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        static HWND hStausBar;
    
        switch(msg) {
    
            case WM_CREATE:
            {
                InitCommonControls();
    
                //Statuszeile erstellen
                hStausBar = CreateWindow(STATUSCLASSNAME,
                                        "Fertig.",
                                        WS_CHILD | WS_VISIBLE,
                                        0, 0, 0, 0,
                                        hWnd, (HMENU)102, hInstance, NULL);
                break;
            }
    
            case WM_LBUTTONDOWN:
            {
                SetWindowText(hStausBar, "click");
    
                SendMessage(hStausBar, SB_SETTEXT, SBT_OWNERDRAW, (LPARAM)"click2");
    
                RECT rStatusRect;
                GetClientRect(hStausBar, &rStatusRect);
                /*DrawStatusText(GetDC(hStausBar), (LPRECT)&rStatusRect, "click3", NULL);
                //RelaseDC... (ja ich weiß)*/
    
                SendMessage(hStausBar, WM_SETTEXT, NULL, (LPARAM)"click4");
                InvalidateRect(hStausBar, &rStatusRect, true);
                break;
            }
    
            default:return(DefWindowProc(hWnd, msg, wParam, lParam));
        }
        return 0;
    }
    


  • m_strText = lpszText;
    CWnd* pMainWnd = ::AfxGetMainWnd();
    if (pMainWnd)
    pMainWnd->SendMessage(WM_SETMESSAGESTRING, 0, (LPARAM)(LPCTSTR)m_strText);



  • Das ist kein MFC Programm @Frank II 🙂



  • Aber das Prinzip ist doch daselbe.


Anmelden zum Antworten