怎样在鼠标点击处创建一个文本框?+50分 MFC编程,在阿户表点击处创建一个文本框。在里面输入字符,文本框是透明的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚才些错了!MFC编程,在鼠标点击处创建一个文本框。在里面输入字符,文本框是透明的 动态生成控件就http://soft.yesky.com/SoftChannel/72342371928702976/20050310/1920322.shtml你要透明,这个应该是要重载一下cedit自己绘制一下吧。 你也可以不用动态创建文本框,一般的做法是,先创建一个文本框,不显示,然后在鼠标点击的地方,计算一个RECT,将文本框MOVEWINDOW到那个位置,显示出来。就可以了 有人给我让我这样做,但是显示不出来。谁能指点一下。谢谢!在view里声明两个变量CEdit m_edit;bool m_bCreate;//view的构造函数里m_bCreate = false;//然后在OnLButtonDown里if(!m_bCreate){m_edit.Create(WS_VISIBLE | WS_VISIBLE,CRect(point.x,point.y,point.x+50,point.y+20),AfxGetMainWnd(),251);m_edit.ShowWindow(SW_SHOW);m_bCreate = true;}else{m_edit.MoveWindow(CRect(point.x,point.y,point.x+50,point.y+20));}//以后点鼠标就把它显示出来 同意楼上,提前创建好文本框,.ShowWindow(SW_HIDE);需要的时候,.ShowWindow(SW_SHOW);并且移动到需要的位置,用.MoveWindow(...) 是不是你的point坐标不对,,你先写死看看,有可能一个是屏幕坐标,一个是客户区坐标 这段代码放到视图OnLButtonDown不太合理,应该放到,表的单击消息处理里面去 我刚才试了一下,问题出在m_edit.Create中,属性设的不对。m_edit->Create(WS_VISIBLE | WS_VISIBLE,CRect(point.x,point.y,point.x+50,point.y+20),AfxGetMainWnd(),251);m_edit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(point.x,point.y,point.x+50,point.y+20), AfxGetMainWnd(), 251);供参考。 我做出来了。是按我刚才发的代码改的是这样的://在view里声明两个变量 CEdit* m_pEdit; bool m_bCreate;//view的构造函数里m_bCreate = false;//Doc里声明一个变量CPoint m_point;//然后在OnLButtonDown里if(!m_bCreate){ m_pEdit=new CEdit() ; m_pEdit->Create(ES_AUTOVSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER ,CRect (point.x,point.y,point.x+50,point.y+20),this,251) ; CDrawDoc *p_Doc=GetDocument() ;//保存文本框的左上角点坐标 p_Doc->m_point.x=point.x; p_Doc->m_point.y=point.y; m_pEdit->SetFocus() ; m_bCreate = true;}else { CString strText ; m_pEdit->GetWindowText(strText) ;//保存文本框里的字符串 CDrawDoc *p_Doc=GetDocument() ; CClientDC ClientDC(this); delete m_pEdit ;//销毁文本框 ClientDC.TextOut(p_Doc->m_point.x,p_Doc->m_point.y,strText);//输出文本框的字符串 m_bCreate = false;} 校园网安装一个Socket服务器,该在什么位置? 关于vc问题 请一个图象拉伸思路 VC 下有哪些好用的Grid控件,类似True DBGrid 或.net 下c1flexgrid. 求助!! 串口通信怪异问题,急 200分求判断两种颜色(RGB)相似度的算法!谢谢! 一个打开文件的错误! 请高手帮助,directdraw的问题 用vc怎样做一个小工程的多语言版本支持? 请问当Windows用户成功登录后 Gina 会收到什么消息吗? 如何在程序中完成对数据库的备份与还原??
MFC编程,在鼠标点击处创建一个文本框。在里面输入字符,文本框是透明的
http://soft.yesky.com/SoftChannel/72342371928702976/20050310/1920322.shtml
你要透明,这个应该是要重载一下cedit自己绘制一下吧。
在view里声明两个变量
CEdit m_edit;
bool m_bCreate;//view的构造函数里
m_bCreate = false;//然后在OnLButtonDown里
if(!m_bCreate){
m_edit.Create(WS_VISIBLE | WS_VISIBLE,CRect(point.x,point.y,point.x+50,point.y+20),AfxGetMainWnd(),251);
m_edit.ShowWindow(SW_SHOW);
m_bCreate = true;
}
else
{
m_edit.MoveWindow(CRect(point.x,point.y,point.x+50,point.y+20));
}
//以后点鼠标就把它显示出来
提前创建好文本框,.ShowWindow(SW_HIDE);
需要的时候,.ShowWindow(SW_SHOW);
并且移动到需要的位置,用.MoveWindow(...)
m_edit->Create(WS_VISIBLE | WS_VISIBLE,
CRect(point.x,point.y,point.x+50,point.y+20),AfxGetMainWnd(),251);m_edit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(point.x,point.y,point.x+50,point.y+20), AfxGetMainWnd(), 251);
供参考。
//在view里声明两个变量
CEdit* m_pEdit;
bool m_bCreate;
//view的构造函数里
m_bCreate = false;//Doc里声明一个变量
CPoint m_point;//然后在OnLButtonDown里
if(!m_bCreate)
{
m_pEdit=new CEdit() ;
m_pEdit->Create(ES_AUTOVSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER ,CRect (point.x,point.y,point.x+50,point.y+20),this,251) ;
CDrawDoc *p_Doc=GetDocument() ;
//保存文本框的左上角点坐标
p_Doc->m_point.x=point.x;
p_Doc->m_point.y=point.y;
m_pEdit->SetFocus() ;
m_bCreate = true;
}
else
{
CString strText ;
m_pEdit->GetWindowText(strText) ;//保存文本框里的字符串
CDrawDoc *p_Doc=GetDocument() ;
CClientDC ClientDC(this);
delete m_pEdit ;//销毁文本框
ClientDC.TextOut(p_Doc->m_point.x,p_Doc->m_point.y,strText);//输出文本框的字符串
m_bCreate = false;
}