首先:应用程序必须先注册窗口类,修改对应的.rc资源文件,修改前请先备份:
.rc文件找到dlg资源:
IDD_DLG_SERVER DIALOGEX 0, 0, 327, 219
STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE |
WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "服务装载器"
CLASS "CServerDlg" //添加改行
FONT 9, "宋体", 400, 0, 0x0
BEGIN
PUSHBUTTON
<p>//启动函数
BOOL CServerApp::InitInstance()
{
__super::InitInstance();</p><p> </p><p> AfxInitRichEdit2();
InitCommonControls();
AfxEnableControlContainer();</p><p> //设置注册表
SetRegistryKey(szProduct);</p><p><span style="color:#ff6666;"> //变量定义
WNDCLASS WndClasss;
ZeroMemory(&WndClasss,sizeof(WndClasss));</span></p><p><span style="color:#ff6666;"> // Get the info for this class.
// #32770 is the default class name for dialogs boxes.
::GetClassInfo(AfxGetInstanceHandle(), TEXT("#32770"), &WndClasss);</span></p><p><span style="color:#ff6666;"> // Change the name of the class.
WndClasss.lpszClassName = TEXT("C<span style="color:#ff6666;">ServerDlg</span>"); //这里请再次注意,一定要保证和rc资源文件里保存的类名相同!</span></p><p><span style="color:#ff6666;"> // Register this class so that MFC can use it.
if (AfxRegisterClass(&WndClasss)==FALSE)
{
AfxThrowResourceException();
}</span></p><p> </p><p>...</p><p>}</p>
2.遍历窗口并发送消息
<p>void CestDlg::SendMsgToServer()
{
HWND hwnd = NULL;
TCHAR szClassName[65] = TEXT("");
//TCHAR szTitle[128] = TEXT("");</p><p> //发送消息
hwnd = ::FindWindow(TEXT("CServerDlg"), NULL);
if (hwnd != NULL)
{
//::GetWindowText(hwnd, szTitle, CountArray(szTitle));//窗口标题
::PostMessage(hwnd, WM_PROCESS_CMD, 0, 0);
}</p><p> while((hwnd = ::GetNextWindow(hwnd,GW_HWNDNEXT))!=NULL)
{
::GetClassName(hwnd,szClassName, CountArray(szClassName));
if (0 == _tcsncmp(szClassName, TEXT("CServerDlg"), sizeof(szClassName)))
{
//::GetWindowText(hwnd, szTitle, CountArray(szTitle));//窗口标题
::PostMessage(hwnd, WM_PROCESS_CMD, 0, 0);
}
}
}</p>