JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=75e642c3ec305ec5b089feffdcb67580Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

RichEdit in Dialog

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 21.05.2005, 19:28    Titel: RichEdit in Dialog Antworten mit Zitat

Hallo alle,
ich möchte in einem Dialog ein RichEdit anlegen. Allerdings muss ich dazu anscheinend InitCommonControlsEx aufrufen. Aber ich weiß nicht, mit welchem Wert. Ich bin mir auch nicht sicher, ob es wirklich InitCommonControlsEx ist. Muss ich was anderes tun?
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 21.05.2005, 19:38    Titel: Antworten mit Zitat

CPP:
#include <windows.h>
#include <commctrl.h>

#pragma comment(lib,"comctl32.lib")
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    MSG        msg;
    WNDCLASS   wc;

    const char szAppName[] = "Test";

    wc.style                = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc        = WndProc;
    wc.cbClsExtra        = 0;
    wc.cbWndExtra        = 0;
    wc.hInstance        = hInstance;
    wc.hIcon                = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor              = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    wc.lpszMenuName        = NULL;
    wc.lpszClassName    = szAppName;

    RegisterClass(&wc);
   
    HWND hMain;
    HWND hEdit;

    InitCommonControls();

    hMain = CreateWindowEx (0, szAppName, "", WS_OVERLAPPEDWINDOW, 0, 0, 600, 500, NULL, NULL, hInstance, NULL);
    if (!LoadLibrary("RICHED32.DLL"))
    {
        MessageBox(NULL, "nee1", "", 0);
        return 0;
    }

    hEdit = CreateWindowEx(0, "RichEdit20W", "", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_AUTOVSCROLL | ES_MULTILINE, 0, 0, 100, 100, hMain, (HMENU)0, hInstance, NULL);

    if(hEdit == NULL)
        MessageBox(NULL, "nee2", "", 0);


    ShowWindow(hMain, iCmdShow);
    UpdateWindow(hMain);

    while(GetMessage(&msg, NULL, 0, 0))
    {
        if(!IsDialogMessage(GetForegroundWindow(), &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

    return 0;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

    switch(message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    default : break;
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}


- Patrick Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 23.05.2005, 20:45    Titel: Antworten mit Zitat

Danke Patrick! Läuft!
Allerdings:
VC++ Doku hat Folgendes geschrieben:
InitCommonControls
This function is obsolete. New applications should use the InitCommonControlsEx function
Egal!
Allerdings habe ich mit den RichEdits noch ein anderes Problem:
Wir kann ich einen Text am Ende eines RichEdit-Feldes anfügen?!? Die EM-Nachrichten sind mir da anscheinend keine große Hilfe... Und den Text im Speicher zu halten könnte ein sehr großes Array ergeben...
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 23.05.2005, 20:53    Titel: Antworten mit Zitat

Sollte so gehen wie bei einem edit
CPP:
//Mit dieser Funktion kann man einem Editfeld Text anhängen
BOOL Edit_AddText(HWND hWnd, LPCTSTR lpText)
{
   DWORD dwStart = 0, dwEnd = 0;
   int nLen;

   nLen = GetWindowTextLength(hWnd);
   SendMessage(hWnd, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)nLen, (LPARAM)nLen);
   SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);

   return(TRUE);
}
//Hiermit kann man in einem mehrzeiligen Editfeld eine Zeile einfügen:
BOOL Edit_InsertLine(HWND hWnd, UINT uIndex, LPCTSTR lpText)
{
   DWORD dwSelStart = 0, dwSelEnd = 0;
   UINT  uLine, uNumChars = 0;

   SendMessage(hWnd, EM_GETSEL, (WPARAM)&dwSelStart, (LPARAM)&dwSelEnd);

   for(uLine = 0; uLine < uIndex; uLine++)
      uNumChars += (UINT)(SendMessage(hWnd, EM_LINELENGTH, (WPARAM)uNumChars, 0) + 2);

   SendMessage(hWnd, EM_SETSEL, (WPARAM)uNumChars, (LPARAM)uNumChars);
   SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)dwSelStart, (LPARAM)dwSelEnd);

   return(TRUE);
}

_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 23.05.2005, 21:44    Titel: Antworten mit Zitat

*Stöhn* Wer kommt den auf Replace?!? Aber gut...
Danke! Was würden wir nur ohne Patrick machen?!? Wink
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 23.05.2005, 21:46    Titel: Antworten mit Zitat

tja sowas Rolling Eyes
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 24.05.2005, 11:20    Titel: Antworten mit Zitat

Ich kann mich erinnern, dass ich ein Problem mit Unicode hatte, als ich Richedit und den Visuellen Editor verwendet hatte. (Er wollte partout die Ansi-Variante nutzen, eine T-Variante gab es da nicht)
Also darauf nochmal achten, bzw. ist das Problem überhaupt noch aktuell?
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum