关于dllcall调用CheckRadioButton问题[已解决]
本帖最后由 502762378 于 2011-7-18 18:52 编辑先上CheckRadioButton的说明
函数功能:该函数给一组单选按钮中的一个指定按钮加上选中标志,并且清除组中其他按钮的选中标志。
函数原型:BOOL CheckRadioButton(HWNDhDlg, intnlDFirstButton, intnlDLastBUtton, intnlDCheckButton);
参数:
hDlg:指向包含单选按钮的对话框的句柄。
nlDFirstButton:指定组中第1个单选按钮的标识符。
nlDLastButton:指定组中最后一个单选按钮的标识符。
nlDCheckButton:指出要选中的那个单选按钮的标识符。
返回值:如果函数执行成功,返回值非零;如果失败,则返回零。若想获取更多错误信息,请调用GetLastError函数。
按照说明,创建几个Radio,调用此函数是不是可以达到清除所有的选中的Radio,选中单个所要的Radio。其实是有一个疑问的,组中第一个和最后一个,我人为性的写成1和3,测试却不成功,请求各位帮忙,谢谢
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 227, 159, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 16, 56, 129, 49)
$Radio1 = GUICtrlCreateRadio("Radio1", 160, 16, 57, 41)
$Radio2 = GUICtrlCreateRadio("Radio1", 160, 64, 65, 33)
GUICtrlSetState($radio2, $GUI_CHECKED)
$Radio3 = GUICtrlCreateRadio("Radio1", 160, 112, 65, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
DllCall("user32.dll","Int","CheckRadioButtonA","hwnd",$Form1,"Int",$Radio1,"Int",$Radio3,"Int",$Radio1)
EndSwitch
WEnd
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 227, 159, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 16, 56, 129, 49)
$Radio1 = GUICtrlCreateRadio("Radio1", 160, 16, 57, 41)
$Radio2 = GUICtrlCreateRadio("Radio1", 160, 64, 65, 33)
GUICtrlSetState($radio2, $GUI_CHECKED)
$Radio3 = GUICtrlCreateRadio("Radio1", 160, 112, 65, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
ToolTip($Radio1&$Radio3)
DllCall("user32.dll","Int","CheckRadioButton","hwnd",$Form1,"Int",$Radio1,"Int",$Radio3,"Int",$Radio1)
EndSwitch
WEnd 回复 2# lainline
非常感谢!
这也太。。。。
工具害人那
页:
[1]