VC中查找窗口并向其发送消息
1、查找窗口句柄的方法:
方法1:FindWindow方法,如下:
- //先找到窗口
- //假设要找窗口的名字为TEST
- //根据窗口名来查找
- CWnd *pWnd = CWnd::FindWindow(NULL,L"TEST");
- if (!pWnd)
- {
- MessageBox(L"无效窗口")
- }
- /***********还没试验成功**********************/
- //->求救
- //也可以根据窗口类来查找
- //假设要找的窗口类为CTest
- CWnd *pWnd = CWnd::FindWindow(CTest,NULL);
- if (!pWnd)
- {
- MessageBox(L"无效窗口")
- }
方法2:如果知道窗口是父窗口那么就可以用GetParent()方法获得窗口句柄
2、向窗口发送消息
- pWnd->SendMessage(UM_USE_MESSAGE, NULL, NULL);
3、消息的定义格式
首先定义UM_USE_MESSAGE
- #define UM_USE_MESSAGE WM_USER+1
在.h文件中声明消息:
- afx_msg LRESULT OnUseMessage(WPARAM, LPARAM);
在.CPP文件中映射消息
- BEGIN_MESSAGE_MAP(CTest, CDialog)
- .......
- ....
- ON_MESSAGE(UM_USE_MESSAGE, &CTest::OnUseMessage)
- .....
- ........
- END_MESSAGE_MAP()
在.cpp文件中实现消息函数
- LPESULT CTest::OnUseMessage(WPARAM wParam, LPARAM lParam)
- {
- ............
- return NULL;
- }