SendMessage()
首先你要获取接受该消息的窗体或控件的ID.对于窗体可以用FindWindow(),该FUNCTION根据窗体名称即标题栏查找窗体,其返回值即WINDOW的ID,NOW 你可以向该WINDOW发送消息(dbclick or close),
HWND AAA;
AAA=FindWindow(NULL,"notepad");//
SendMessage(AAA,WM_CLOSE,NULL,NULL);
即为关闭NOTEPAD

解决方案 »

  1.   

    SendMessage()向窗口发送一条Windows消息。直接调用窗口过程,直到该窗口过程返回这条消息后才返回(相比PostMessage函数而言)
    PostMessage()在窗口的队列中放置一条消息,且不等待有关窗口处理该消息,便返回。函数可以访问其它应用程序。
      

  2.   

    定义自定义消息时用:
    #define WM_MYMESSAGE WM_USER+??
    其中??为任意正整数。
    处理时在WinProc的switch(message)中加入:
    WM_MYMESSAGE:
    //处理代码
       .
       .
       break;
    再用SendMessage()或PostMessage()发送消息就行了!
      

  3.   

     lifei 大侠 写的SendMessage(AAA,WM_CLOSE,NULL,NULL);是win32函数,
    还是MFC函数?
      

  4.   

    区别在于使一条WM_MESSAGE到达一个窗口过程的方法不同,一种是(SendMessage())直接跳到其处理函数(立即类型,虽不恰当但有助于理解),另一种是通过系统的消息队列处理(PostMassage())(随机等待类型,消息排队,先进先出,但WM_PAINT除外)...是不是有点说废话的感觉?
    对于PostMessage()最典型的应用是关闭窗口,PostMessage(hwnd,WM_QUIT,0,0)
    开个玩笑,你想过在你SendMessage()的处理函数中再向同一窗口发送同一消息会是什么结果吗?^O^...如果你感兴趣可以再试试用PostMessage()...比较跟踪一下结果,会加深你对二者区别的理解...不过由此引起的一切后果嘛...请自负^O^
      

  5.   

    SendMessage()与PostMessge()是有区别,而且区别是非常重要的。
    SendMessage()是发送消息,要等待他返回。
    PostMessage()是发送消息,但是不要等待他返回。
    举例说明,
        PostMessage()是派一人去银行取钱,他在去银行取钱期间,你什么都可以干,不用专坐在哪儿等他返回来,你可以去红灯区泡妞,如果那人回来,他会抠你或者打你手机,然后,你接到消息后,可以让他把钱送到你处,结清服务费。多爽!
        而SendMessage()也是派一人去银行取钱,他在去银行取钱期间,你什么都不能干,专坐在哪儿等他返回来,你干瞪眼,也没办法!这两种机制,其实是非常有实用价值的。
    1、发送消息在一定要等待消息返回时,必须用SendMessage()发送,尤其是消息函数中是处理指针变量的。
    2、用PostMessage()发送消息不用等待消息返回,比如在View类中的InitUpdate()就需要发送消息,此消息是在状态栏中显示进度条,如果用SendMessage()发送,进度条还未完成,而用户关闭此窗口,此时,程序会引发异常。
    若改为PostMessage()就不会了,当然,显示进度条的函数还需要有一个称之为PeekAndPump()函数。