这个函数是手动声明的还是向导里有的??

来源:互联网 发布:青山水利软件 编辑:程序博客网 时间:2024/05/01 03:30

关于OnDoRealize(WPARAM wParam,LPARAM lParam)函数

在View中有这样一个函数:
afx_msg LRESULT OnDoRealize(WPARAM wParam, LPARAM lParam); 
// user messag
 
该函数的声明是发灰的,
函数功能:实现系统调色板,是视类中处理自定义消息WM_DOREALIZE(该消息在主框架窗口定义如下:#define WM_REALIZEPAL (WM_USER+100))
在调用API函数时,要设置逻辑调色板的,否则图像不能显示.
 
该函数的两个参数说明消息类别及属性,一般自定义消息都要用到,很多情况下需要靠这两个参数来传递消息的属性.
虽然在头文件中有afx_msg,但在.cpp文件中没有象其它消息映射函数一样出现在BEGIN_MESSAGE_MAP中.
 选择调色板到主框架的dc中,并实现此调色板(CDC:: RealizePalette())(即realize the new palette)。
WPARAM(LPARAM): 一个作为参数传到window程序或实现回传的功能的值的类型 wParam:句柄。wParam == m_hWnd (this view) 看看函数定义和调用它的地方就可以理解了: // 实现新的调色板 afx_msg LRESULT OnDoRealize(WPARAM wParam,LPARAM lParam);//user message OnDoRealize((WPARAM)m_hWnd,0); void CCh1_1View::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { CScrollView::OnActivateView(bActivate, pActivateView, pDeactiveView); if (bActivate) { ASSERT(pActivateView == this); OnDoRealize((WPARAM)m_hWnd, 0); // same as SendMessage(WM_DOREALIZE); } //CScrollView::OnActivateView(bActivate, pActivateView, pDeactiveView); }
虽然这个函数声明中有afx msg(在头文件中) ,但是在cpp文件中没有像其他消息映射函数那样出现在BEGIN_MESSAGE_MAP宏中,是不是用户自定义的消息函数都这样定义呢?如果是这样的话,在class wizard中怎么添加自定义的消息呢?我直接把这个函数定义成视图类的成员函数好像程序也可以运行呀?
原创粉丝点击