private void button1_Click(object sender, System.EventArgs e)
{
int xt=(int)FindWindowEx((int)FindWindow(null,"form1"),0,null,"button3");
label4.Text=FindWindowEx((int)FindWindow(null,"form1"),0,null,"button3").ToString();
label3.Text=xt.ToString();
//MessageBox(0,"3445","33",0);
SendMessage(xt,WM_ENABLE,true,true);
//button2.Enabled=false;
}
xt是button3的句柄
send以后为什么button3还是false状态

解决方案 »

  1.   

    [DllImport("User32.DLL")]
    public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);建议你用EnableWindow()API看看
      

  2.   

    用spy++看看消息发出去没有
    看sendmessage返回值多少
      

  3.   

    [DllImport("user32.dll", EntryPoint="EnableWindow")]
    public static extern int EnableWindow (IntPtr hwnd,bool fEnable);
    [DllImport("user32.dll", EntryPoint="EnableWindow")]
    public static extern int EnableWindow (IntPtr hwnd,int fEnable);
    EnableWindow() 都试过了,不行,是不是现实的方法不对呀?
    enablewindow(IntPtr 句柄,int 非零值)
    enablewindow(IntPtr 句柄,bool true)
      

  4.   

    句柄没问题?
    好像里面有很多嵌套的,你一步步跟踪看看,
    理论上应该是可以的,我原先用过click是可以的
      

  5.   

    句柄绝对没问题,我用人格担保,我用spy++找到button3的句柄反算过和我label里显视的一样
    问个小白问题,是不是因为button被重绘了所在我看不到结果呢?