MS VC++ въпрос
3 отговора
171 прегледа
MS VC++ въпрос
Използвам контролата MSFLEXGRID. Първия ред е фиксиран и съдържа наименованията на колоните. Налага ми се някои от тези наименованията да ги променям динамично в процеса на изпълнение. Въпросът ми е възможна ли е такава промяна (в helpa на контролата не намерих нужната информация) ?
Re: MS VC++ въпрос
Да. В help-a ги има в графата properties. Първо трябва да укажеш, активна клетка. Слет като имаш активна клетка можеш да правиш каквото искаш в нея вкл. и да променяш текста и.
Кода е нещо от сорта:
int i=0, j=0;
m_ctrlFlexGrid.Row() = i; // избираш i ред
m_ctrlFlexGrid.Col() = j; // избираш j колона
m_ctrlFlexGrid.Text() = "niakakyv tekst";
А, ако откриеш как да въвеждаш текст от клавиатурата в някоя клетка пиши тук.
Успех.
Кода е нещо от сорта:
int i=0, j=0;
m_ctrlFlexGrid.Row() = i; // избираш i ред
m_ctrlFlexGrid.Col() = j; // избираш j колона
m_ctrlFlexGrid.Text() = "niakakyv tekst";
А, ако откриеш как да въвеждаш текст от клавиатурата в някоя клетка пиши тук.
Успех.
Re: MS VC++ въпрос
За давъвеждаш текст от клавиатурата можеш
да използваш събитието "KeyPress" на контрола.
Контрола ти дава натиснатия клавиш като "short FAR* KeyAscii".
Ето ти и много прост пример:
void CMyDlg::OnKeyPressMsfgrid(short FAR* KeyAscii)
{
CString text = m_ctlFGrid.GetText();
m_ctlFGrid.SetText(text + (char*)KeyAscii);
}
Горния код въвежда текст в активната в момента клетка.
Ако искаш друга клетка знаеш как да постъпиш.
Ако искаш контрола да реагира по друг начин при
натискане на определени клавиши (например да изтрива текста при натискане на "Delete" тогава можеш да проверяваш кой клавиш е натиснат и да реагираш по желания от теб начин.
Pozdravi ot Bourgas.
да използваш събитието "KeyPress" на контрола.
Контрола ти дава натиснатия клавиш като "short FAR* KeyAscii".
Ето ти и много прост пример:
void CMyDlg::OnKeyPressMsfgrid(short FAR* KeyAscii)
{
CString text = m_ctlFGrid.GetText();
m_ctlFGrid.SetText(text + (char*)KeyAscii);
}
Горния код въвежда текст в активната в момента клетка.
Ако искаш друга клетка знаеш как да постъпиш.
Ако искаш контрола да реагира по друг начин при
натискане на определени клавиши (например да изтрива текста при натискане на "Delete" тогава можеш да проверяваш кой клавиш е натиснат и да реагираш по желания от теб начин.
Pozdravi ot Bourgas.
Re: MS VC++ въпрос
В конкретния случаи въвеждам данните в отделно поле (както в Excel). Друг начин е да се направи плаващ Edit box, който се премества върху избраната клетка или да се използва варианта на pbourgas. Вероятно има и други начини.