Frage zu editboxen



  • k. allerdings hab ich das ding als dialogbox in vc++ gemacht-> ich hab das Handle davon net.. oder krieg ich das irgendwie raus?? wäre natü+rlich cool

    dann würde es nämlich klappen

    mfg



  • GetDlgItem
    Verschoben nach WinAPI.



  • thx...

    getestet -> geht immer noch ned :-(((

    hilfeeee 😞
    mfg



  • Zeig Code.



  • hab ich net hier.... habsch aufm laptop und der is oben...
    im mom bin ich zu faul hoch zu laufen :p

    also wenn ich wieder oben bin, dann werd ich mir ne diskette schnappen und den code dann posten

    bis dann



  • hey, dein Privatleben hat hier nichts zu suchen. 🙄 🙄



  • Fauler Sack, du 🙂 :p



  • Original erstellt von dEUs:
    Fauler Sack, du 🙂 :p

    jepp ich weiß..

    hier der code:

    #include <windows.h>
    #include <windowsx.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include "resource.h"
    
    RECT EditRect;
    HINSTANCE g_hInstance;
    
    BOOL CALLBACK DlgProcInfo(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
        switch(Msg)
        {
        case WM_CREATE:
            {
            }break;
        case WM_COMMAND:
            {
                switch(LOWORD(wParam))
                {
                case IDCLOSE:
                    {
                        SendMessage(hWnd, WM_CLOSE, 0, 0);
                    }break;
                }
            }break;
        case WM_CLOSE:
            {
                EndDialog(hWnd, FALSE);
            }break;
        }
    
        return FALSE;
    }
    
    BOOL CALLBACK DlgProcMain(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
        switch(Msg)
        {
        case WM_CREATE:
            {
                GetClientRect(hWnd, &EditRect);
                EditRect.bottom -=5;
                EditRect.right -=5;
                SendDlgItemMessage(hWnd, IDC_TEXT, EM_SETRECT, 0, (LPARAM)(LONG) &EditRect);
                HWND eb_hWnd=GetDlgItem(hWnd, IDC_TEXT);
                SetWindowPos(eb_hWnd, HWND_TOP, 0, 0, 10, 10, SWP_SHOWWINDOW);
            }break;
        case WM_COMMAND:
            {
                switch(LOWORD(wParam))
                {
                case IDC_FILE_EXIT:
                    {
                        SendMessage(hWnd, WM_CLOSE, 0, 0);
                    }break;
                case IDC_FILE_NEW:
                case IDC_FILE_SAVE:
                case IDC_FILE_LOAD:
                case IDC_FILE_PRINT:
                    {
                        MessageBox(hWnd, "Diese Funktion steht momentan nicht zur Verfügung.", "Hinweis", MB_ICONINFORMATION);
                    }break;
                case IDC_HELP_INFO:
                    {
                        DialogBox(g_hInstance,MAKEINTRESOURCE(IDD_INFO), hWnd, DlgProcInfo);
                    }break;
                }
            }break;
        case WM_CLOSE:
            {
                EndDialog(hWnd, FALSE);
            }break;
        case WM_SIZE:
            {
                GetClientRect(hWnd, &EditRect);
                EditRect.bottom -=5;  //Wegen Scrollbalken
                EditRect.right -=5;   //wegen Scrollbalken
                SendDlgItemMessage(hWnd, IDC_TEXT, EM_SETRECT, 0, (LPARAM)(LONG) &EditRect);
    
                RECT test;
                SendDlgItemMessage(hWnd, IDC_TEXT, EM_GETRECT, 0, (LPARAM)(LONG)&test);
                //char buffer[256];
                //sprintf(buffer, "b:%d, l:%d, r:%d, t:%d", test.bottom, test.left, test.right, test.top);
                //MessageBox(hWnd, buffer, "", NULL);
            }break;
        }
        return FALSE;
    }
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
        g_hInstance = hInstance;
        DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProcMain);
        return FALSE;
    }
    

    viel spaß dabei :p

    mfg



  • Eigentlich solltest du den Code posten, mit dem es nicht funktioniert hat.
    Naja, egal schreib mal folgendes in den WM_SIZE-Zweig:

    GetClientRect(hWnd, &EditRect);
    EditRect.bottom -=5;  //Wegen Scrollbalken
    EditRect.right -=5;   //wegen Scrollbalken
    SetWindowPos(GetDlgItem(hWnd, IDC_TEXT), 0, 0, 0, EditRect.right-EditRect.left, EditRect.bottom-EditRect-top, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
    


  • ich hab auch beim coden nen kleinen fehler gehabt.. sorry *zwinker* aber in deiner anweisung sind auch nen paar fehler drinne...

    ich kompiliers grad ma.. moment.. (nach verbesserung deiner kleinen fehler)
    und... ja es geht 🙂

    thx für die hilfe 🙂


Anmelden zum Antworten