2.2 按钮函数(Button)
2.2.1 CheckDlgButton
函数功能:该函数改变按钮控制的选中状态。
函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);
参数:
hDlg:指向含有该按钮的对话框的句柄。
nlDButton:标识要修改的按钮。
uCheck:给定该按钮的选中状态。该参数可取下列值,这些值的含义如下:
BST_CHECKED:设置按钮状态为己选中(checked)。
BST_INDETERMINATE:设置按钮状态变灰,表示不确定状态。只有在该按钮具有BS_3STATE或BS_AUTO3STATE样式时才能使用该值。
BST_UNCHECKED:设置按钮为未选中状态(unchecked)。
返回值:如果函数执行成功,返回值非零;如果函数失败,则返回值为零。若想获取更多错误信息,请调用 GetLastError函数。
速查;Windows NT:3.1 及以上版本;WindowS:95及以上版本;Windows CE:不支持:头文件:Winuser.h;库文件:user32.lib。
2.2.2 CheckRadioButton
函数功能:该函数给一组单选按钮中的一个指定按钮加上选中标志,并且清除组中其他按钮的选中标志。
函数原型:BOOL CheckRadioButtoh(HWNDhDlg, intnlDFirstButton, intnlDLastBUtton, intnlDCheckButton);
参数:
hDlg:指向包含单选按钮的对话框的句柄。
nlDFirstButton:指定组中第1个单选按钮的标识符。
nlDLastButton:指定组中最后一个单选按组的标识符。
nlDCheckButton:指出要选中的那个单选按钮的标识符。
返回值:如果函数执行成功,返回值非零;如果失败,则返回零。若想获取更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以广版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.2.3 IsDlgButtonChecked
函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);
参数:
hDlg:指向包含按钮控制的对话框。
nkDButtom:指定按钮控制的整型标识符。
返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED:表示按钮被选中。
BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。
BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。
速查:Windows NT:3.1及以11版本;Windows:95及以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
2.3 插入标记(^)函数(Caret)
2.3.1 CreateCaret
函数功能;该函数为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口。插入标记的形状。可以是线、块或位图。
函数原型:BOOL CreateCaret(HWND hWnd,HBIBMAP hBitmap,int nHeight);
参数:
hWnd:指定佣有插入标记的窗口。
hBitmap:标识用于定义插入标记形状的位图。如果该参数为NULL,那么插入标记是实心的(原色),如果该参数为(HBITMAP)1,那么插入标记是灰色的。如果该参数是位图句柄,那么插入标记就是指定的位图。位图句栖必须已中由CreateBitmap、CreatDIBitmap或LoadBitmap函数创建。
如果hBitmap为位图句栖,那么CreateCaret函数将忽略参数nWidth和nHeight,因为该位图定义了自己的宽度和高度。
nWidth:按逻辑单位指定插入标记的宽度,如果该参数为零,那么宽度就设为系统定义的窗口边界宽度。如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。
nHeight:按逻辑单位指定插入标记的高度。如果该参数为零,那么高度就设为系统定义的窗口边界高度如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。
返回值:如果函数执行成功,返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误 信息,请调用GetLastError函数。
备注:参数nWidth和nHeight指定了插入标记的宽度和高度,这些值按逻辑单位表示;按像素表示的真正 宽度和高度与窗口的映射模式有关。
CreateCaret函数自动清除前一个插入标记的形状,不考虑拥有该插入标记的窗口。新创建的插入标记一直隐藏,直到应用程序调用ShowCaret函数使该插入标记可见为止。
系统为每个队列提供一个插入标记。窗口只有在它有键盘焦点(focus)或者它是活动窗口时才创建插入标记。该窗口应在键盘焦点消失或窗口变为不活动之前,清除插入标记。
可以通过使用GetSystemMetrics函数,并指定SM_CXBORDER和SM_CYBORDER值来检索系统窗口边界的宽度或高度。使用窗口边界的宽度或高度可以保证插入标记在高分辨率屏幕上可见。
对于Windows CE:Windows CE不支持hBitmap参数,并且该参数应设为NULL。Windows CE缺省的是实心(Solid)插入标记。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.2 DestroyCaret
函数功能:该函数清除插入标记的当前形状,从窗口中释放插入标记,并且删除屏幕上的插入标记。如果插入标记的形状是基于位图的,那么DestroyCaret不释放该位图。
函数原型:BOOL DestroyCaret(VOLD)
参数:无。
返回值:如果函数执行成功,则返回值非零:如果函数失败,则返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有当前任务中的窗口拥有插入标记时DestoryCaret才清除插入标记。如果插入标记不为当前任务中的窗口拥有,那么DestroyCaret不执行任何操作,并且返回FALSE。
系统为每个队列提供一个插入标记。只有当窗口有键盘焦点或窗口是活动的时候,才创建插入记号。窗口应该在键盘焦点消失或窗口变为不活动之前清除插入标记。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.3 GetCaretBlinkTime
函数功能:该函数返回一个公用的时间,单位为毫秒。该时间是转化插入标记的像素而需要的时间。用户可以使用控制面板来设置这个值。
函数原型:UINT GetCaretBlinkTime(VOLD)
参数:无。
返回值:如果该函数执行成功,那么返回值就是闪烁时间,单位为毫秒;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.4 GetCaretPos
函数功能:该函数将插入标记的位置(按客户区坐标)信息拷贝到指定的POINT结构中。
函数原型:BOOL GetCaretPos(LPP0lNT IpPoint);
参数:
IpPoint:指向POINT结构的指针。该结构接收插入标记的客户坐标信息。
返回值:如果函数执行成功,那么返回值非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:插入标记位置通常是按包含该插入标记的窗口的客户坐标形式给出的。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;文件:user32.lib。
2.3.5 HideCaret
函数功能:该函数将屏幕上的插入标记清除。实际上是隐藏插入标记,并不是删除其当前形状或使插入点无效。
函数原型:B00L HideCaret(HWND hWnd);
参数:
hWnd:标识有插入标记的窗口。如果该参数为NULL,那么HideCaret函数搜索当前任务,以发现拥有插入标记的窗口。
返回值:如果函数执行成功,那么返回值为非零:如果函数失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有指定的窗口拥有插入标记时,HideCaret才隐藏插入标记。如果指定的窗口没有插入标记,那么函数HideCaret什么也不做,并且返回FALSE。
隐藏操作是累计的,如果应用程序连续5次调用HideCaret,那么该程序也必须调用ShowCaret 5次才能显示插入标记。
速查;Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:USer32.lib。
2.3.6 SetCaretBlinkTime
函数功能:该函数将插入标记的闪烁时间设置为一个指定的数目,该数目的单位为毫秒,闪烁时间就是转化插入标记像素所需的时间,单位为毫秒。
函数原型:BOOL SetCaretBlinkTime(UINT uMSeconds);
参数:
uMSeconds:指定新的闪烁时间,时间单位为毫秒。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:用户可以使用控制面板来设置闪烁时间。应用程序应遵守用户的设置。只有允许用户设置闪烁时间的应用程序(例如控制面板)才应该使用SetCaretBlinkTime函数。
如果改变了闪烁时间,那么后续激活的应用程序会使用修改后的闪烁时间,即使在键盘焦点消失或为非活动时,恢复前一个闪烁时间值,这是由于多线程环境的缘故,在这种环境中,禁止使用一个应用程序与激活另一个应用程序并不同步。这种特性允许系统即使在当前应用程序挂起时也可以激活另一个应用程序。
对于Windows CE:在Windows CE系统中,在一个应用程序中改变插入标记的闪烁时间不会影响后续加载的应用程序中的闪烁时间。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.7 SetCaretPos
函数功能:该函数将插入标记移动到指定的坐标上。如果拥有该插人标记的窗口是使用CS_OWNDC类样式创建的,那么指定的坐标依据与该窗口相关的设备环境的映射模式而定。
函数原型:BOOL SetCaretPos(int X,int Y);
参数:
X:指定插入标记新的X坐标。
Y:指定插入标记新的Y坐标。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:函数SetCaretPos不管插入标记是否隐藏都将移动它。系统为每个队列提供一个插入标记。窗口只能对自己拥有的插入标记进行位置的设置。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:Winuser.h;库文件:user32.lib。
2.3.8 ShowCaret
函数功能:该函数使插入标记在屏幕的当前位置上可见。当插入标记变为可见时,它自动开始闪烁。
函数原型:BOOL ShowCaret(HWND hWnd);
参数:
hWnd:标识拥有插入标记的窗口。如果该参数为NULL,那么ShowCaret搜索当前任务以发现有插入标记的窗口。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有指定的窗口拥有插入标记,并且该插入标记具有形状,没有连续隐藏2次或多次时,ShowCaret才能显示该插入标记。如果这几个条件中的一个或多个没满足,那么ShowCaret函数什么也不做,并且返回FALSE。
速查:Windows NT:3.1及以上版本Windows:95及以上版本Windows CE:1.0及以版本;头文件:winuser.h;库文件:user32.lib。
2.4 组合框函数(Combo box)
2.4.1 DlgDirListComboBox
函数功能:该函数用一个目录列表来填充指定的组合框
函数原型:int DlgDirListComboBox(HWND hDlg,LPTSTR lpPathSpec,int nlDComboBox,int nlDStaticPath,UINT
uFiletype);
参数:
hDlg:包含组合框的对话框句柄。
lpPathSpel:指向一个以NULL结束的字符串,格式为
[driver][/][directory/][.][filename]
如果指定的串包括一个驱动器或目录路径,在填充列表之前,DlgDirListComboBox函数改变当前驱动
器和目录。在列表被填充之后,驱动器和目录路径从lpPathspec参数标识的串中移出来。
nlDComboBox:指定对话框中组合框的标识符。如果hlDComboBox为零,则DlgDirlistComboBox函数没有组合框存在或不试图填充它。
hlDStatic Path:指定静态控制的标识符,此静态控制用于显示当前目录。如果nlDStasticPath为零,DlgDirListComboBox函数认为没有这样的控制。
uFiletype:指定被显示的文件的属性。它可以是下列的任意组合:
DDL_ARDIVE:包括档案文件。
DDL_DIRECTORY:包括子目录,子目录名必须用方括号括起来([])。
DDL_DRIVES:包括驱动器,驱动器列在格式[-X-]中,其中X为驱动器字母名。
DDL_EXCIUSIVE:包括仅带指定属性的文件,缺省时,写保护文件被引出,即使DDL_READ WRITE没有被指定。
DDL_HIDBEN:包括隐含文件。DDL_READONLY:包括只读文件。
DDL_READWRITE:包括读写文件且不带有别的属性。DDL_SYSTEM:包括系统文件。
DDL_POSTMSGS:把信息传递到应用信息队列,缺省时,DlgDirlist函数把信息直接发送给对话框过程。
返回值:如果函数调用成功,返回值为非零值,否则返回值为零。例如,如果tpPatbSpec指定的串不是一个有效路径,函数调用失败。若想获得更多错误信息,请调用GetLastError函数。
备注;如果参数lpszPatbSpec指向一个零字节串或一个指定驱动器目录,或两者的串,但没有文件名,
那么认为文件名为”.”。
Windows NT:如果有目录列表的话,则显示长文件名。
Windows 95:目录列表显示短文件名(为8.3形式)。可以用SHGetFilelnfo或GetFullPathName函数来得到相应的长文件名。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib:Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2.4.2 DlgDirSelectEx
函数功能:该函数从单选列表框中检取当前选择,列表框已经由DlgDirlist函数填充,并且选择内容为一个驱动器字母,文件名或目录名。
函数原型:BOOL DlgDirSelectEx(HWND hDlg,LPTSTR lpString,int nCount,int nlDListBox);
参数:
hDlg:包括列表框的对话框句柄。
lpString:指向存放选择路径的一个缓冲区。
ncount:指定由lpString指向的缓冲区的字节长度。
nlDListBox:指定对话框中列表框的整型标识符。
返回值:如果当前选择为目录名,返回值为非零值。如果当前选择不是一个目录名,返回值为零,若想
获得更多错误信息,请调用函数GetLastError函数。
备往:DlgDirSelectEx函数把选择复制到由IpString参数指向的缓冲区,如果当前选择是一个目录名或驱动器字母,DlgDirSelectEx则删除方括号(对于驱动器字母,则删去破折号)。这样以便目录名或驱动器字母能插入一个新的路径。如果没有选择,lpString不改变。 DlgDirSelectEx函数把消息LB_GETCURSEL和消息LB_GETTEXT发送到列表框,函数禁止从列表框返回多于一个的文件名。列表框不应是复选的列表框,如果是的话,此函数不返回零值且Ipstring参数保持不变。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2.4.3 DlgDirSelectComboBoxEx
函数功能:该函数从由DlgDirlistcomboBox函数填充的组合框中检取当前选择。选择内容为一个驱动器字母、文件名或目录名。
函数原型:BOOL DlgDirSelectComboBox(HWND hDlg,LPTSTR lpString,int nCount,int nlDComboBox);
参数:
hDlg:包括组合框的对话框的句柄。
IpString:指向存放选择路径的缓冲区。
nCount:指定IpString参数指向的缓冲区的字节长度。
nlDComboBox:指定控制对话框的组合框的整型标识符。
返回值:如果当前选择为一个目录名,返回值为非零值;否则,返回值为零值。若想获得更多错误信息,请调用GetLastError函数。
备注:如果当前选择指定于一个目录名或驱动器字母,DlgDirSelectComboBoxEx函数则删方括号(对驱动器字母则删除破折号),以便使文件名或驱动器字母能插入新的路径或文件名,如果没有选择,IpString参数指向的缓冲区的内容没有改变。DlgDirselectComboBoxEx函数不允许从组合框返回多于一个的文件名。
DlgDirSectectComboBoxEx把消息CB_GETCILRSEL和CB_GETLBTEXT发送到组合框。在Win32API中,可应用带有三种组合框的DlgDirSelectComboBoxEx函数(三种组合框为CBS_SIMPLE,CBS_DROPDOWN,与CBS_DROPDOWNLIST)。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。2.2 按钮函数(Button)
2.2.1 CheckDlgButton
函数功能:该函数改变按钮控制的选中状态。
函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);
参数:
hDlg:指向含有该按钮的对话框的句柄。
nlDButton:标识要修改的按钮。
uCheck:给定该按钮的选中状态。该参数可取下列值,这些值的含义如下:
BST_CHECKED:设置按钮状态为己选中(checked)。
BST_INDETERMINATE:设置按钮状态变灰,表示不确定状态。只有在该按钮具有BS_3STATE或BS_AUTO3STATE样式时才能使用该值。
BST_UNCHECKED:设置按钮为未选中状态(unchecked)。
返回值:如果函数执行成功,返回值非零;如果函数失败,则返回值为零。若想获取更多错误信息,请调用 GetLastError函数。
速查;Windows NT:3.1 及以上版本;WindowS:95及以上版本;Windows CE:不支持:头文件:Winuser.h;库文件:user32.lib。
2.2.2 CheckRadioButton
函数功能:该函数给一组单选按钮中的一个指定按钮加上选中标志,并且清除组中其他按钮的选中标志。
函数原型:BOOL CheckRadioButtoh(HWNDhDlg, intnlDFirstButton, intnlDLastBUtton, intnlDCheckButton);
参数:
hDlg:指向包含单选按钮的对话框的句柄。
nlDFirstButton:指定组中第1个单选按钮的标识符。
nlDLastButton:指定组中最后一个单选按组的标识符。
nlDCheckButton:指出要选中的那个单选按钮的标识符。
返回值:如果函数执行成功,返回值非零;如果失败,则返回零。若想获取更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以广版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.2.3 IsDlgButtonChecked
函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);
参数:
hDlg:指向包含按钮控制的对话框。
nkDButtom:指定按钮控制的整型标识符。
返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED:表示按钮被选中。
BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。
BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。
速查:Windows NT:3.1及以11版本;Windows:95及以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
2.3 插入标记(^)函数(Caret)
2.3.1 CreateCaret
函数功能;该函数为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口。插入标记的形状。可以是线、块或位图。
函数原型:BOOL CreateCaret(HWND hWnd,HBIBMAP hBitmap,int nHeight);
参数:
hWnd:指定佣有插入标记的窗口。
hBitmap:标识用于定义插入标记形状的位图。如果该参数为NULL,那么插入标记是实心的(原色),如果该参数为(HBITMAP)1,那么插入标记是灰色的。如果该参数是位图句柄,那么插入标记就是指定的位图。位图句栖必须已中由CreateBitmap、CreatDIBitmap或LoadBitmap函数创建。
如果hBitmap为位图句栖,那么CreateCaret函数将忽略参数nWidth和nHeight,因为该位图定义了自己的宽度和高度。
nWidth:按逻辑单位指定插入标记的宽度,如果该参数为零,那么宽度就设为系统定义的窗口边界宽度。如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。
nHeight:按逻辑单位指定插入标记的高度。如果该参数为零,那么高度就设为系统定义的窗口边界高度如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。
返回值:如果函数执行成功,返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误 信息,请调用GetLastError函数。
备注:参数nWidth和nHeight指定了插入标记的宽度和高度,这些值按逻辑单位表示;按像素表示的真正 宽度和高度与窗口的映射模式有关。
CreateCaret函数自动清除前一个插入标记的形状,不考虑拥有该插入标记的窗口。新创建的插入标记一直隐藏,直到应用程序调用ShowCaret函数使该插入标记可见为止。
系统为每个队列提供一个插入标记。窗口只有在它有键盘焦点(focus)或者它是活动窗口时才创建插入标记。该窗口应在键盘焦点消失或窗口变为不活动之前,清除插入标记。
可以通过使用GetSystemMetrics函数,并指定SM_CXBORDER和SM_CYBORDER值来检索系统窗口边界的宽度或高度。使用窗口边界的宽度或高度可以保证插入标记在高分辨率屏幕上可见。
对于Windows CE:Windows CE不支持hBitmap参数,并且该参数应设为NULL。Windows CE缺省的是实心(Solid)插入标记。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.2 DestroyCaret
函数功能:该函数清除插入标记的当前形状,从窗口中释放插入标记,并且删除屏幕上的插入标记。如果插入标记的形状是基于位图的,那么DestroyCaret不释放该位图。
函数原型:BOOL DestroyCaret(VOLD)
参数:无。
返回值:如果函数执行成功,则返回值非零:如果函数失败,则返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有当前任务中的窗口拥有插入标记时DestoryCaret才清除插入标记。如果插入标记不为当前任务中的窗口拥有,那么DestroyCaret不执行任何操作,并且返回FALSE。
系统为每个队列提供一个插入标记。只有当窗口有键盘焦点或窗口是活动的时候,才创建插入记号。窗口应该在键盘焦点消失或窗口变为不活动之前清除插入标记。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.3 GetCaretBlinkTime
函数功能:该函数返回一个公用的时间,单位为毫秒。该时间是转化插入标记的像素而需要的时间。用户可以使用控制面板来设置这个值。
函数原型:UINT GetCaretBlinkTime(VOLD)
参数:无。
返回值:如果该函数执行成功,那么返回值就是闪烁时间,单位为毫秒;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.4 GetCaretPos
函数功能:该函数将插入标记的位置(按客户区坐标)信息拷贝到指定的POINT结构中。
函数原型:BOOL GetCaretPos(LPP0lNT IpPoint);
参数:
IpPoint:指向POINT结构的指针。该结构接收插入标记的客户坐标信息。
返回值:如果函数执行成功,那么返回值非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:插入标记位置通常是按包含该插入标记的窗口的客户坐标形式给出的。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;文件:user32.lib。
2.3.5 HideCaret
函数功能:该函数将屏幕上的插入标记清除。实际上是隐藏插入标记,并不是删除其当前形状或使插入点无效。
函数原型:B00L HideCaret(HWND hWnd);
参数:
hWnd:标识有插入标记的窗口。如果该参数为NULL,那么HideCaret函数搜索当前任务,以发现拥有插入标记的窗口。
返回值:如果函数执行成功,那么返回值为非零:如果函数失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有指定的窗口拥有插入标记时,HideCaret才隐藏插入标记。如果指定的窗口没有插入标记,那么函数HideCaret什么也不做,并且返回FALSE。
隐藏操作是累计的,如果应用程序连续5次调用HideCaret,那么该程序也必须调用ShowCaret 5次才能显示插入标记。
速查;Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:USer32.lib。
2.3.6 SetCaretBlinkTime
函数功能:该函数将插入标记的闪烁时间设置为一个指定的数目,该数目的单位为毫秒,闪烁时间就是转化插入标记像素所需的时间,单位为毫秒。
函数原型:BOOL SetCaretBlinkTime(UINT uMSeconds);
参数:
uMSeconds:指定新的闪烁时间,时间单位为毫秒。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:用户可以使用控制面板来设置闪烁时间。应用程序应遵守用户的设置。只有允许用户设置闪烁时间的应用程序(例如控制面板)才应该使用SetCaretBlinkTime函数。
如果改变了闪烁时间,那么后续激活的应用程序会使用修改后的闪烁时间,即使在键盘焦点消失或为非活动时,恢复前一个闪烁时间值,这是由于多线程环境的缘故,在这种环境中,禁止使用一个应用程序与激活另一个应用程序并不同步。这种特性允许系统即使在当前应用程序挂起时也可以激活另一个应用程序。
对于Windows CE:在Windows CE系统中,在一个应用程序中改变插入标记的闪烁时间不会影响后续加载的应用程序中的闪烁时间。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.3.7 SetCaretPos
函数功能:该函数将插入标记移动到指定的坐标上。如果拥有该插人标记的窗口是使用CS_OWNDC类样式创建的,那么指定的坐标依据与该窗口相关的设备环境的映射模式而定。
函数原型:BOOL SetCaretPos(int X,int Y);
参数:
X:指定插入标记新的X坐标。
Y:指定插入标记新的Y坐标。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:函数SetCaretPos不管插入标记是否隐藏都将移动它。系统为每个队列提供一个插入标记。窗口只能对自己拥有的插入标记进行位置的设置。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:Winuser.h;库文件:user32.lib。
2.3.8 ShowCaret
函数功能:该函数使插入标记在屏幕的当前位置上可见。当插入标记变为可见时,它自动开始闪烁。
函数原型:BOOL ShowCaret(HWND hWnd);
参数:
hWnd:标识拥有插入标记的窗口。如果该参数为NULL,那么ShowCaret搜索当前任务以发现有插入标记的窗口。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:只有指定的窗口拥有插入标记,并且该插入标记具有形状,没有连续隐藏2次或多次时,ShowCaret才能显示该插入标记。如果这几个条件中的一个或多个没满足,那么ShowCaret函数什么也不做,并且返回FALSE。
速查:Windows NT:3.1及以上版本Windows:95及以上版本Windows CE:1.0及以版本;头文件:winuser.h;库文件:user32.lib。
2.4 组合框函数(Combo box)
2.4.1 DlgDirListComboBox
函数功能:该函数用一个目录列表来填充指定的组合框
函数原型:int DlgDirListComboBox(HWND hDlg,LPTSTR lpPathSpec,int nlDComboBox,int nlDStaticPath,UINT
uFiletype);
参数:
hDlg:包含组合框的对话框句柄。
lpPathSpel:指向一个以NULL结束的字符串,格式为
[driver][/][directory/][.][filename]
如果指定的串包括一个驱动器或目录路径,在填充列表之前,DlgDirListComboBox函数改变当前驱动
器和目录。在列表被填充之后,驱动器和目录路径从lpPathspec参数标识的串中移出来。
nlDComboBox:指定对话框中组合框的标识符。如果hlDComboBox为零,则DlgDirlistComboBox函数没有组合框存在或不试图填充它。
hlDStatic Path:指定静态控制的标识符,此静态控制用于显示当前目录。如果nlDStasticPath为零,DlgDirListComboBox函数认为没有这样的控制。
uFiletype:指定被显示的文件的属性。它可以是下列的任意组合:
DDL_ARDIVE:包括档案文件。
DDL_DIRECTORY:包括子目录,子目录名必须用方括号括起来([])。
DDL_DRIVES:包括驱动器,驱动器列在格式[-X-]中,其中X为驱动器字母名。
DDL_EXCIUSIVE:包括仅带指定属性的文件,缺省时,写保护文件被引出,即使DDL_READ WRITE没有被指定。
DDL_HIDBEN:包括隐含文件。DDL_READONLY:包括只读文件。
DDL_READWRITE:包括读写文件且不带有别的属性。DDL_SYSTEM:包括系统文件。
DDL_POSTMSGS:把信息传递到应用信息队列,缺省时,DlgDirlist函数把信息直接发送给对话框过程。
返回值:如果函数调用成功,返回值为非零值,否则返回值为零。例如,如果tpPatbSpec指定的串不是一个有效路径,函数调用失败。若想获得更多错误信息,请调用GetLastError函数。
备注;如果参数lpszPatbSpec指向一个零字节串或一个指定驱动器目录,或两者的串,但没有文件名,
那么认为文件名为”.”。
Windows NT:如果有目录列表的话,则显示长文件名。
Windows 95:目录列表显示短文件名(为8.3形式)。可以用SHGetFilelnfo或GetFullPathName函数来得到相应的长文件名。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib:Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2.4.2 DlgDirSelectEx
函数功能:该函数从单选列表框中检取当前选择,列表框已经由DlgDirlist函数填充,并且选择内容为一个驱动器字母,文件名或目录名。
函数原型:BOOL DlgDirSelectEx(HWND hDlg,LPTSTR lpString,int nCount,int nlDListBox);
参数:
hDlg:包括列表框的对话框句柄。
lpString:指向存放选择路径的一个缓冲区。
ncount:指定由lpString指向的缓冲区的字节长度。
nlDListBox:指定对话框中列表框的整型标识符。
返回值:如果当前选择为目录名,返回值为非零值。如果当前选择不是一个目录名,返回值为零,若想
获得更多错误信息,请调用函数GetLastError函数。
备往:DlgDirSelectEx函数把选择复制到由IpString参数指向的缓冲区,如果当前选择是一个目录名或驱动器字母,DlgDirSelectEx则删除方括号(对于驱动器字母,则删去破折号)。这样以便目录名或驱动器字母能插入一个新的路径。如果没有选择,lpString不改变。 DlgDirSelectEx函数把消息LB_GETCURSEL和消息LB_GETTEXT发送到列表框,函数禁止从列表框返回多于一个的文件名。列表框不应是复选的列表框,如果是的话,此函数不返回零值且Ipstring参数保持不变。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2.4.3 DlgDirSelectComboBoxEx
函数功能:该函数从由DlgDirlistcomboBox函数填充的组合框中检取当前选择。选择内容为一个驱动器字母、文件名或目录名。
函数原型:BOOL DlgDirSelectComboBox(HWND hDlg,LPTSTR lpString,int nCount,int nlDComboBox);
参数:
hDlg:包括组合框的对话框的句柄。
IpString:指向存放选择路径的缓冲区。
nCount:指定IpString参数指向的缓冲区的字节长度。
nlDComboBox:指定控制对话框的组合框的整型标识符。
返回值:如果当前选择为一个目录名,返回值为非零值;否则,返回值为零值。若想获得更多错误信息,请调用GetLastError函数。
备注:如果当前选择指定于一个目录名或驱动器字母,DlgDirSelectComboBoxEx函数则删方括号(对驱动器字母则删除破折号),以便使文件名或驱动器字母能插入新的路径或文件名,如果没有选择,IpString参数指向的缓冲区的内容没有改变。DlgDirselectComboBoxEx函数不允许从组合框返回多于一个的文件名。
DlgDirSectectComboBoxEx把消息CB_GETCILRSEL和CB_GETLBTEXT发送到组合框。在Win32API中,可应用带有三种组合框的DlgDirSelectComboBoxEx函数(三种组合框为CBS_SIMPLE,CBS_DROPDOWN,与CBS_DROPDOWNLIST)。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。