سلام خدمت اساتید محترم.
من یک ویو دارم که داخلش یک لیست قرار داره.(به دلایلی از کلاسهای آماده در mfc استفاده نکردم) برای تغییر نام هر یک از node های داخل لیست باید روی نام آن راست کلیک کنید و گزینه ی تغییر نام رو انتخاب کنید.
حالا مشکل از اینجا شروع میشه: بعد از انتخاب تغییر نام من میخوام یک CEdit control روی نام مورد نظر رو بگیره تا کاربر نام جدید رو وارد کنه.برای تغییر مکان هرباره ی کنترل من از این روش استفاده میکنم:
void CCustomTreeView::OnmenuRename()
{
CFont font;
font.CreateFontW(14,0,0,0,100,0,0,0,ANSI_CHARSET,O UT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS
,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,_T("Arial" ));
CString str = GetCurrentNodeName();
delete myEdit;
myEdit = new CmyEdit;
myEdit->Create( WS_CHILD|WS_VISIBLE,GetCurrentNodeRect(),this,1);
myEdit->SetFont( &font );
myEdit->SetWindowText( str );
}
همونطور که میبینید من کنترل رو هر بار که تغییر نام انتخاب میشه با اندازه و مکان جدید ایجاد میکنم. آیا این راه حل مناسبه؟
و با استفاده از تابع SetFont سعی میکنم فونت کنترل رو عوض کنم اما کار نمیکنه!!! مشکل کجاست؟