WinAPI Combobox ausgewählter Text



  • Hallo Leute,ich bins nochmal.Ich hab hier jetzt ein paar Comboboxen in einem Programm und möchte jetzt wissen welcher Text/Zeile gerade ausgewählt ist.

    Die Comboboxen hab ich mit CreateWindow() erstellt,also nichts mit Resource.
    Falls das jemand weiß,whre es nett es hier zu posten.

    Danke:D



  • Indem du die Nachricht CB_GETCURSEL an die Handles der Comboboxen schickst.
    Um an den Text zu kommen, sind zwei Nachrichten notwendig: erst mit CB_GETLBTEXTLEN die Länge herausfinden, einen Buffer in der notwendigen Größe bereitstellen und mit CB_GETLBTEXT den Text holen.
    Das ganze kannst du natürlich auch in eine eigene Funktion packen.



  • Danke ich probier es aus



  • Wenn du in C++ programmierst:

    std::basic_string<TCHAR> GetCurCBText(HWND cb)
    {
    	size_t index = SendMessage(cb, CB_GETCURSEL, 0, 0);
    	if(index!=CB_ERR)
    	{
    		size_t len = SendMessage(cb, CB_GETLBTEXTLEN, index, 0);
    		if(len)
    		{
    			std::vector<TCHAR> v(len+1);
    			SendMessage(cb, CB_GETLBTEXT, index, reinterpret_cast<LPARAM>(&v[0]));
    
    			return &v[0];
    		}
    	}
    	return TEXT("");
    }
    


  • Vielen Dank.
    Kann man irgendwie rausfinden welche nummer dieser name von der box aus hat??



  • Klar, genau das liefert CB_GETCURSEL.


Log in to reply