我自己从CStatic派生一个类,响应WM_CREATE、WM_SIZE等消息,不会成功被调用,为何?
BEGIN_MESSAGE_MAP(CMyStatic, CStatic)
//{{AFX_MSG_MAP(CLabelEx)
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_CREATE() //---->
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//在对话框中,使用该类连接CStatic控件,该响应函数不会被调用,为何?
int CMyStaticx::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
TRACE0("CMyStatic::OnCreate\n");
if (CStatic::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}在对话框中的控件创建时引发的WM_CREATE消息怎么我们自己不能得到呢?
BEGIN_MESSAGE_MAP(CMyStatic, CStatic)
//{{AFX_MSG_MAP(CLabelEx)
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_CREATE() //---->
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//在对话框中,使用该类连接CStatic控件,该响应函数不会被调用,为何?
int CMyStaticx::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
TRACE0("CMyStatic::OnCreate\n");
if (CStatic::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}在对话框中的控件创建时引发的WM_CREATE消息怎么我们自己不能得到呢?
解决方案 »
- MSDN注册表问题
- 模态和非模态对话框的问题
- 100分求教显卡性能测试程序
- 如何用代码修改控件的Tab顺序?
- 如何判断一个进程是“未响应”状态?
- 请问,如何测试一个串口的好坏?
- 用数据库还是直接读写文件,如何选择,大家不凡发表点意见呀
- ATL不使用MFC,Edit,Tree, List等控件对应哪些类啊?
- 初学者的问题,initinstance and exitinstance
- 阿牛,进来..答对了给100分,帮顶的给5分 ;)
- 我传参数给一个function 时, 如果有10个参数以内, 我一般都是在参数列表里一一写明, 而我的同事喜欢将参数一一赋给数组, 再传给functioin
- 我想softice调试一个普通的应用程序,程序有一部分是自己写的,另外一部分是别人写的,请问怎么才能调试呢
默认IDC_STATIC是不会处理消息映射的
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_CREATE )
{ //我调试了,不会进入这里啊????
if ( pMsg->hwnd == m_MyStatic.GetSafeHwnd() )
{
m_MyStatic.SendMessage(pMsg->message, pMsg->wParam, pMsg->lParam);
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
你动态创建的话,就可以响应了。