在 从generic CWnd派生的类中显示CEdit的问题
想要实现功能:
从generic CWnd派生类CInput,CInput中包含一个CEdit, 在主程序中创建CInput的对象,当鼠标移动时,位置信息给CInput的对象,由CInput根据相应的消息管理CEdit的位置和状态等。
我是这样做的:
先新建一个MFC的单文档应用程序,然后从generic CWnd派生一个类CInput,Create函数如下:
LPCSTR CInputWnd::lpszClassName=NULL;
BOOL CInputWnd::Create( CWnd* pWndParent )
{
CRect rect( 0,0,0,0 );
if( pWndParent )
pWndParent->GetClientRect( &rect );
if(lpszClassName==NULL)
{
lpszClassName=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_NOCURSOR)));
//注册类;IDC_NOCURSOR为新建光标的ID,这个光标没有任何图案
}
BOOL bCreate = CreateEx( WS_EX_TRANSPARENT, lpszClassName, "", WS_VISIBLE|WS_CHILD,
rect, pWndParent, IDC_WND_INPUT );
if( bCreate )
{
m_edFirst.Create( WS_CHILD|WS_BORDER|WS_TABSTOP|ES_AUTOHSCROLL, CRect(10,10,100,100), this, IDC_EDIT_SHOW );
m_edFirst.ShowWindow( SW_HIDE );
}
return bCreate;
}
在CInput的头文件中包含一个CEdit m_edFirst;
在单文档程序中,OnCreate()中调用CInput的Create(this)进行创建。
当鼠标移动时在OnMouseMove中,调用CInput的ChangePos()函数,ChangePos如下:
void CInputWnd::ChangePos( CPoint ptPos )
{
m_edFirst.ShowWindow( SW_SHOWNA );
m_edFirst.MoveWindow( ptPos.x, ptPos.y, 100, 20 );
}
跟踪程序可以进入ChangePos,但是界面上看不到任何反应。
请问:怎样让CEdit显示出来?请指教,谢谢!
从generic CWnd派生类CInput,CInput中包含一个CEdit, 在主程序中创建CInput的对象,当鼠标移动时,位置信息给CInput的对象,由CInput根据相应的消息管理CEdit的位置和状态等。
我是这样做的:
先新建一个MFC的单文档应用程序,然后从generic CWnd派生一个类CInput,Create函数如下:
LPCSTR CInputWnd::lpszClassName=NULL;
BOOL CInputWnd::Create( CWnd* pWndParent )
{
CRect rect( 0,0,0,0 );
if( pWndParent )
pWndParent->GetClientRect( &rect );
if(lpszClassName==NULL)
{
lpszClassName=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_NOCURSOR)));
//注册类;IDC_NOCURSOR为新建光标的ID,这个光标没有任何图案
}
BOOL bCreate = CreateEx( WS_EX_TRANSPARENT, lpszClassName, "", WS_VISIBLE|WS_CHILD,
rect, pWndParent, IDC_WND_INPUT );
if( bCreate )
{
m_edFirst.Create( WS_CHILD|WS_BORDER|WS_TABSTOP|ES_AUTOHSCROLL, CRect(10,10,100,100), this, IDC_EDIT_SHOW );
m_edFirst.ShowWindow( SW_HIDE );
}
return bCreate;
}
在CInput的头文件中包含一个CEdit m_edFirst;
在单文档程序中,OnCreate()中调用CInput的Create(this)进行创建。
当鼠标移动时在OnMouseMove中,调用CInput的ChangePos()函数,ChangePos如下:
void CInputWnd::ChangePos( CPoint ptPos )
{
m_edFirst.ShowWindow( SW_SHOWNA );
m_edFirst.MoveWindow( ptPos.x, ptPos.y, 100, 20 );
}
跟踪程序可以进入ChangePos,但是界面上看不到任何反应。
请问:怎样让CEdit显示出来?请指教,谢谢!
...全文
相关推荐
深入浅出MFC第一章代码Generic程序完整
深入浅出MFC第一章代码Generic程序完整.................
mfc实现串口通信,以及设置编辑框控件字体大小及颜色
mfc上利用CreateFile()等API实现串口通信,以及利用对话框的OnColorCTL()响应消息设置控件中变换字体颜色
JSON是一种常用的数据交换格式,它以人类可读的文本格式存储数据。在编程中,JSON文件经常被用作数据的存储、传输和解析。
JSON文件由键值对组成,其中的值可以是字符串、数字、布尔值、数组、对象或者null。键值对使用冒号分隔,不同的键值对使用逗号分隔,整个JSON文件使用花括号括起来。在编程中,我们可以使用各种编程语言来读取和操作JSON文件。
【35JavaScript JSON】JavaScript JSON: 详解数据交换与存储的常用格式
/ 输出:{“name”:“John”,“age”:30,“city”:“New York”}console.log(jsonObj.name);// 输出:John。// JSON对象示例。// JSON数组示例。
JSON文件是一种常用的数据交换格式,它以文本形式表示结构化的数据
JSON文件是一种常用的数据交换格式,它以文本形式表示结构化的数据。JSON(JavaScript Object Notation)是一种轻量级的数据格式,易于阅读和编写,并且易于解析和生成。它在编程中被广泛应用于数据存储、配置文件、API通信等领域。JSON文件由键值对构成,使用大括号({})包围。键值对中的键是字符串,值可以是字符串、数字、布尔值、数组、对象或者null。键和值之间使用冒号(:)进行分隔,多个键值对之间使用逗号(,)分隔。


