如果用FindWindow 来找一个AfxMessageBox生成的消息框,该怎么找?
用FindWindow(NULL,AfxGetAppName,0,0)找到的是主窗口,
要想找到这个消息框,可能要有它对应的classname才行,
可是它的类名是什么呢

解决方案 »

  1.   

    messagebox就是一个dialog,所以它的窗口类名应是#32770 (dialog). 不过你找这个messagebox的目的是什么?
      

  2.   

    这种东西考类名是不行的,找caption把。
      

  3.   

    利用VS自带的工具Spy++,可以查看消息框对应的Handle,Caption及Class。它的Class就是#32770 (dialog)。
      

  4.   

    回金陵五月,我打消息框是因为前面看到一位师兄的帖子,是问怎么样实现AfxMessageBox自动消失的. 
    我的想法是在重载DoMessageBox的时候先让它生成消息框,然后找到它,再Sleep一段时间后,发送WM_CLOSE消息给它.  但是在找这个消息框的时候失败了.
      

  5.   

    是我自己的程序产生的.
    我想,如果AfxMessageBox产生的消息框有它对应的classname的话,那么所有的这种消息框的classname都是相同的,这样一来.我就能找到所有的消息框,从而使它们全都具有某种特性了.
      

  6.   

    如果是你自己的程序,那就简单多了,你何不自己写了个dialog,设个timer,然后在ONTIMER中结束自己.然后用这个dialog代替所有的AfxMessageBox.
      

  7.   

    It is not impossible but not necessary. For an instance, you bought a BMW, you took out a wheel and forced it run as a tricycle motor, do you think it is a good idea?
      

  8.   

    I see.
    OK,I,ll end the discussion.