Page 1 of 1

Cum pot redimensiona lista drop-down dintr-un CComboBox ?

Posted: 10 Jan 2011, 15:20
by mesajflaviu
Sant cazuri cand un CComboBox cu stilul drop-down are mai multe caractere decat pot incapea in lista drop-down . Cum as putea face aceasta lista variabila ca latime ?

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 10 Jan 2011, 17:05
by Ovidiu Cucu
Nu stiu sa existe vreo cale directa, implementata in control, dar cred ca ne-am mai jucat cu redimensionarea dropdown-ului: http://www.codexpert.ro/forum/viewtopic ... 531#p10675
Pentru a calcula latimea necesara, poti folosi CDC::GetTextExtent.

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 10 Jan 2011, 18:51
by mesajflaviu
Bun , dar acea dimensionare era pe verticala ... eu ma gandeam la ceva in genul IAutoComplete al IE-ului , adica acel drop-down sa aiba un "coltzunas" de care sa intind daca trebuie ...

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 10 Jan 2011, 18:54
by neagu_laurentiu
Fereastra ce se deschide la combo trebuie sa fie a ta si faci tot ce vrei.

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 10 Jan 2011, 21:50
by Ovidiu Cucu
mesajflaviu wrote:Bun , dar acea dimensionare era pe verticala ...
Corect. Pe orizontala mai trebuie transpirat un pic. ;)
mesajflaviu wrote:acel drop-down sa aiba un "coltzunas" de care sa intind daca trebuie ...
Pune te rog o poza cu "coltzunasul" ca sa ma prind si eu despre ce-i vorba.

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 10 Jan 2011, 22:46
by neagu_laurentiu

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 11 Jan 2011, 12:17
by Ovidiu Cucu
neagu_laurentiu wrote:In dreapta jos: http://community.devexpress.com/blogs/t ... 2F0AC5.png
Aha deci, "sizing grip" se traduce "coltzunas". Thanks!
BTW, (numai pentu specialistii in Office) "format painter" se traduce "maturica". :biggrin:
format painter.png
format painter.png (1.04 KiB) Viewed 7418 times

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 11 Jan 2011, 22:19
by mesajflaviu
Ma refeream la

http://img138.imageshack.us/img138/5957/34696379.png

dar inteleg ca nu e simplu deloc , si poate e mai buna solutia creerii unui control special , nu unul derivat din CComboBox ... sa vad ce pot face ...

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 11 Jan 2011, 22:45
by Ovidiu Cucu
mesajflaviu wrote:si poate e mai buna solutia creerii unui control special , nu unul derivat din CComboBox ... sa vad ce pot face ...
Esti e cale sa iei o decizie buna. Cel putin din punctul meu de vedere. ;)

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 11 Jan 2011, 23:11
by neagu_laurentiu
Cat de special ? Eu, utilizator, nu trebuie sa-l vad diferit cand schimb stilul sau versiunea de Windows ! Adica baza tot combo Windows sa fie ca daca pui tu un editbox si buton cu sageata nu mai arata ca cel default...

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 12 Jan 2011, 11:30
by Ovidiu Cucu
neagu_laurentiu wrote:Cat de special ? Eu, utilizator, nu trebuie sa-l vad diferit cand schimb stilul sau versiunea de Windows ! Adica baza tot combo Windows sa fie ca daca pui tu un editbox si buton cu sageata nu mai arata ca cel default...
Pai, daca din butonel tasneste ceva de genul http://community.devexpress.com/blogs/t ... 2F0AC5.png
deja e la un kilometru de "default".
// Pe afara-i vopsit gardul, inauntru-i leopardul. :biggrin:

De ce neaparat combobox?

Re: Cum pot redimensiona lista drop-down dintr-un CComboBox

Posted: 12 Jan 2011, 14:02
by Ovidiu Cucu
N-ar fi din cale-afara de greu nici de vopsit gardul. :)
Ceva de genul:

Code: Select all

   HTHEME hTeme= ::OpenThemeData(m_hWnd, L"ComboBox");
   if(NULL != hTeme)
   {
      // draw Visual Style (XP/Vista/7).
      ::DrawThemeBackground(hTeme, hDC, CP_BORDER, CBB_NORMAL, rcCombo, NULL);
      ::DrawThemeBackground(hTeme, hDC, CP_DROPDOWNBUTTON, CBXS_NORMAL, rcDDButton, NULL);
      // ...
      ::CloseThemeData(hTeme);
   }
   else
   {
      // draw Classic Style (using DrawFrameControl and so on).
   }
BTW. Poti sa-i pui si "coltzunas", daca vrei. :D