手工加载消息映射到 .cpp
BEGIN_MESSAGE_MAP(CPicFileDlg, CFileDialog)
//{{AFX_MSG_MAP(CPicFileDlg)
ON_WM_CLOSE()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CPicFileDlg, CFileDialog)
//{{AFX_MSG_MAP(CPicFileDlg)
ON_WM_CLOSE()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
HBRUSH CRrrView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT2)
{
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkMode(TRANSPARENT);
return hbr;
}
return hbr;}
LRESULT ::SendMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam);
BOOL ::PostMessage((HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam); MFC CWnd原型:
LRESULT SendMessage(UINT message, WPARAM wParam = 0, LPARAM lParam = 0);
BOOL PostMessage(UINT message, WPARAM wParam = 0, LPARAM lParam = 0); 可见,MFC中只是简单封装了一下,其中的HWND就是this所指的对象的HWND
所以当你在一个CMyDialog里调用SendMessage(WM_MYMSG)时,实际上是给自己发了一个消息,
所以,其消息处理函数,也应该定义在这个CMyDialog中, 如果你想在CMyDialog给另一个CYourDialog发消息,应该::SendMessage(YourDiaog的HANDLE, WM_YOURMESSAGE, 0, 0);
当然对应的消息处理函数定义在CYourDialog中.-----作为对我贴错贴子的补偿!
HWND hWnd, // handle to destination window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);时,必须在持有句柄Hwnd的类中编写消息响应函数