Исправлено форматирование текста. — SchweinDeBurg
только недавно начал учить MFC. Есть вопрос:
пишу так:
CSatic st; // в OnInitDialog
st.Create(str, WS_VISIBLE | WS_CHILD | WS_BORDER , CRect(p.x, p.y, point.x, point.y),this,2000); // OnLeftMouseDown
все работает, но как соэдать много статиков? т.е. щелчек мышью — статик? Соэдавать массив обьектов статиков? Но статиков может быть очень много...
Убедительная просьба — использовать коды форматирования при вставке текстов программ.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
Здравствуйте, Arx, Вы писали:
// В модуле stdafx.h пишешь:
#include <vector>
// В классе твоего диалога заводишь переменную.
std::vector<CStatic*> labels;
// В обработчике нажатия левой кнопкой мыши:
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
labels.push_back(new CStatic());
CStatic *label = labels.back();
label->Create(str, WS_VISIBLE | WS_CHILD | WS_BORDER , CRect(point.x, point.y, point.x+sizex, point.y + sizey),this, 10000 + labels.size());
// sizex, sizey - размеры метки
CDialog::OnLButtonDown(nFlags, point);
}
CMyDlg::~CMyDlg()
{
for(size_t i=0;i<labels.size();i++)
{
delete labels[i];
}
}