2016-04-01 15 views
0

Ben bu yöntemi arıyorum kontrol etmez: BM_SETCHECK bir radyo düğmesi

Helpers.WinApi.SendMessage(nextControl, Helpers.WinApi.BM_SETCHECK, Helpers.WinApi.BST_CHECKED, new StringBuilder()); 

Nerede: BM_SETCHECK sabiti 0x00F1 ve BST_CHECKED Bu mesaj tamamen göz ardı edilir 1.

olduğunu.

Bunu nasıl yapabilirim? Teşekkürler Jaime

+0

Neden 'lParam' parametresinde' StringBuilder' iletiliyor? 'BM_SETCHECK' lParam' kullanmaz, 0 olmalıdır. Her durumda' SendMessage() 'dönüş değeri nedir? Mesaj göz ardı ediliyorsa, muhtemel suçlu 'nextControl' aslında başlamak için bir kontrol/radyo düğmesine işaret etmiyor. Bunu, sınıf adının 'BUTTON' ve 'GetWindowLong (GWL_STYLE) 'düğmelerinin' BS_RADIOBUTTON' stili olduğundan emin olmak için 'GetClassName() ile doğrulayabilirsiniz. –

+0

StringBuilder kullanıyorum çünkü diğer parametrelerdeki SendMessage için bu parametre olarak dizeler gönderiyorum .... BM_SETCHECK için bu parametrenin göz ardı edildiğini okudum. Ancak, bu parametreye sıfır gönderebilmek için anlık olarak SendMessage tanımını değiştirdim, ancak radyo düğmesi de kontrol edilmedi. Bunu kontrol etmem gereken radyo düğmesi olduğunu biliyorum çünkü bunu doğrulamak için Spy ++ kullanmıştım. – jstuardo

+0

Ayrıca, BM_SETCHECK için SendMessage'ın her zaman 0'ı döndürdüğünü ve Spy ++ kullandığımda, bu denetimin sınıfının WindowsForms10.BUTTON.app.0.141b42a_r14_ad1 olduğunu okudum. Winforms C# uygulamasında oluşturulmuş bir radyo düğmesidir. – jstuardo

cevap

0

Denetime bir BM_CLICK iletisi göndererek çözdüm.