Win32 API参考大全(四)

Win32 API Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤ 的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程序达到开启 视窗、描绘图形、使⽤周边设备等⽬的,由于这些函数服务的对象是应⽤程序(Application),所以便 称之为Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应⽤程序编程接⼝。 阅读详情


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两个版本。
MFC中复选框Check控件用法 当复选框ComBox控件勾选时做一种算法,不勾选时,做另一种算法,程序如下所示: if (BST_CHECKED == IsDlgButtonChecked(IDC_CHECK1)) {       // 勾选 } else { } IDC_CHECK1是CheckBox控件。   函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或 阅读详情

相关推荐

17. 判断 单选按钮 和 复选框 是否被选中

在实际开发中,我们往往需要知道哪个按钮被选中了,才能进行下一步的操作。例如对于一组单选按钮,只有一个选项能被选中,最好的办法是将这组按钮作为参数传入一个函数,通过函数返回值判断哪个按钮被选中了。 但遗憾的是,在Windows中不能一次性获得一组按钮的选中状态,只能一个一个地遍历。复选框也是如此。 可以通过SendMessage函数发送BM_GETCHECK消息来获取按钮的选中状态,返回 BST_C...

y果子 3031

MFC checkbox使用方法

MFC中复选框checkbox控件,至少有三种方法对其进行操作,他们是利用Cbutton成员函数GetCheck和SetCheck,第二种是利用CWnd成员函数IsDlgButtonChecked,最后就是把checkbox复选框控件与BOOL型变量相关联。 一、用CButton成员函数 MFC中复选框CheckBox的基类是CButton。那么就可以用GetDlgItem来获取复选框的指针,

dearmango 1万+

WIN32 API函数大全

常用WIN32API函数大全 API之网络函数 API之消息函数 API之文件处理函数 API之打印函数 API之文本和字体函数 API之菜单函数 API之位图、图标和光栅运算函数 API之绘图函数 API之设备场景函数 API之硬件与系统函数 API之进程和线程函数 API之控件与消息函数 API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddC

嵌入式点灯大师的博客 3376

3态复选框CheckBox

软件架构师何志丹:3态复选框CheckBox

闻缺陷则喜何志丹 2006

Win32API大全:全面的中文编程接口参考

本文还有配套的精品资源,点击获取 简介:《Win32API大全》是一本覆盖广泛Windows编程接口的参考书,详细介绍了如何利用Win32 API进行系统级编程。它涵盖了从系统服务、用户界面、文件和注册表操作到图形设备接口、设备输入、网络编程、安全与权限、多媒体支持、调试与错误处理以及国际化与本地化等多个关键领域。这本书不仅解释了每个API函数的用法、参数和返回值,还附带实...

weixin_31419153的博客 1216

全面掌握 Win32 API 的《新编 Windows API 参考大全》

本文还有配套的精品资源,点击获取 简介:《新编 Windows API 参考大全》是学习和掌握Windows操作系统核心编程技术的宝贵资源。本书专注于Win32 API,提供了开发系统级应用所需的各种函数、结构体、常量和消息的详细信息。内容涵盖了窗口创建、进程与线程管理、内存分配、文件系统操作、GDI图形绘制、用户界面元素控制、系统信息获取、网络编程、错误处理以及安全性与权...

weixin_35757531的博客 1202

Win32 API参考大全(四)

原文地址:http://blog.pfan.cn/study/1036.html 2.2  按钮函数(Button) 2.2.1  CheckDlgButton 函数功能:该函数改变按钮控制的选中状态。 函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck); 参数: hDlg:指向含有该按钮

1082

新编Win32 API函数大全:Windows编程的完整指南

Windows编程是在微软的Windows操作系统上,利用各种编程接口(API)进行应用软件开发的过程。Windows操作系统拥有庞大的API库,其中最为经典的就是Win32 API,它是编写Windows应用程序的基础。Win32 API为开发者提供了操作图形界面、硬件设备、文件系统等系统级资源的接口。掌握Win32 API,对于深入理解Windows操作系统的工作原理以及开发高效的Windows应用程序至关重要。在Windows编程中,窗口类的定义是构建用户界面的基础。

weixin_42405592的博客 840

pywin32、win32api、win32gui、win32com、win32con 都是啥?

pywin32、win32api、win32gui、win32com、win32con 名称非常类似,特别容易混淆,今天就用600字给大家区分一下 文章目录pywin32win32guiwin32conwin32apiwin32com记录时间 pywin32 pywin32 主要的作用是供 Python开发者快速调用 Windows API的一个模块库。该模块的另一个作用是是通过Python进行COM编程。 落地场景: 如果你想在Windows操作系统用Python实现自动化工作,pywin32模块经常用到

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 3万+

Win32 API全面参考指南

在Win32 API中,窗口类是一个结构体,它描述了窗口的外观和行为。要创建一个窗口,首先必须定义并注册一个窗口类。窗口类的结构体定义如下:UINT style;style:定义了窗口类的样式,比如窗口是否有边框或标题栏。:指向一个窗口过程函数的指针,该函数用于处理该窗口类的消息。cbClsExtra和cbWndExtra:分别用于指定额外的类和窗口内存。hInstance:指向包含窗口类的实例的句柄。hIcon和hCursor。

weixin_31860973的博客 1057

微软Win32程序员参考大全

Win32 API(Windows 32位应用程序编程接口)是Windows操作系统的核心,为开发者提供了大量预定义的函数和数据类型,允许程序直接与操作系统交互。它是构建Windows应用程序的基础,从桌面应用到服务程序,都离不开Win32 API的支持。核心库是SDK的核心部分,它们包含了实现各种Windows功能所需的函数和接口。开发者通常通过链接这些库文件来构建他们的应用程序。核心库和组件包括:: 包含了用于管理进程、线程、内存和文件系统的函数。User32.lib。

weixin_34725745的博客 1276

WindowsAPI程序设计参考大全.pdf:掌握Windows API编程的不二选择

WindowsAPI程序设计参考大全.pdf:掌握Windows API编程的不二选择 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《Windows API 程序设计参考大全.pdf》是一本全面深入探讨Microsoft Win32 API函数的参考指南。书中不仅详细介绍了每个API函数的用法,包括函数原型、功能描述、参数细节等,还提供了典型示例,帮助读者快速掌握接...

gitblog_06734的博客 907

基于C语言和Win32 API实现贪吃蛇

游戏初始化:设置游戏窗口大小、颜色、速度等参数,并初始化蛇的长度和位置。游戏循环:在一个无限循环中,不断更新游戏状态,包括蛇的移动、食物的生成和碰撞检测等。蛇的移动:根据用户的输入(通常是方向键),控制蛇的头部向相应方向移动,并更新蛇的身体位置。食物的生成:在游戏区域内随机生成食物,并标记其位置。碰撞检测:检测蛇是否吃到食物、是否碰到游戏边界或自己的身体。游戏结束条件:如果蛇碰到游戏边界或自己的身体,游戏结束,显示游戏结束画面。渲染画面。

qq_74013365的博客 2万+

【C#】什么是Win32 API,为什么使用,参考手册

前言 作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。 Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。...

GreAmbWang的博客 2324

user32.dll 函数说明小结

主要介绍了user32.dll 函数说明,需要的朋友可以参考下

西门子S7-1200 PLC控制步进电机实战:从I/O分配到梯形图,手把手教你实现正反转与调速

本文详细介绍了如何使用西门子S7-1200 PLC控制步进电机,从硬件接线到梯形图编程,实现正反转与三档调速功能。通过I/O分配、脉冲生成逻辑和方向控制等核心步骤,帮助工程师快速掌握PLC控制步进电机的关键技术,提升工业自动化项目的实施效率。

weixin_28733777的博客 535

Win32 API参考大全

Win32 API参考大全 1~6 http://blog.pfan.cn/study/articlelist_663_0_1.html 转载于:https://www.cnblogs.com/clover-sheep/archive/2010/08/18/1802076.html

weixin_30502965的博客 267

(入门向)在Ubuntu22.04.3安装Matlab2021b,以及无法安装在当前目录下的解决办法(见最后)

还有这个/usr/local是只读状态,我试过sudo chmod..去改那个文件的读,结果还是安装不了,我不是这个默认路径,因为它文件夹还是只读,于是我在matlab2021b下创了一个bin,并选上。输入完成后,依次按y,因为里面有三个文件,他会让你确定3次密码,直接yyy跳过即可。你可能会遇到装不下的情况,这个软件占30g,可是你分配给虚拟机就剩10g。,于是我去Downloads下建了一个matlab2021b文件夹,果然好使,3).此时,会提示你输入密码,因为这个rar是有密码的,

harrype的博客 7286

Windows API参考大全

第一章 Win32 API概论 1.1为什么使用 Wu32 API     在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API 函数。这些函数在程序员手中犹如“积木块”一样,可搭建出各种界面丰富、功能灵活的应 用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。     随着软件技术的不断发展,在Windows平台上出现了很

scq503的专栏 9936

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例文件注释--olaFlow-算例1- baseWaveFlume

ou_no的博客 3640

2023年GESP12月认证C++五级真题解析

例如,如果a=4,那么4是最⼩的幸运数,而1不是,但我们可以连续对1做3次+1操作,使其变为4,所以我们可以说,1幸运化后的结果是 4。【题目大意】给一个完全平方数的标准,推导出哪些是超级幸运数,然后判断N个数字中,哪些是超级幸运数,是的输出“lucky”,不是的输出离该数字最近的比它大的数字。前一个数字,下标是j的数字是偶数,后面的数字下标是j+1的是奇数,按照要求,偶数在奇数的后面,要交换。A函数时间复杂度是O(n/2),B函数算法是O(sqrt(n)),大部分情况后者是优的,值更小。

lan_in的博客 1007

如何获得窗口句柄以及WIN32+API参考大全

在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如"积木块"一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。    随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用"所见即所得"的编程方式来开发具有精美用户界面和功能的应用程序

陈伟堂的专栏 2万+

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411
上一篇: 使用VS2010在CODEPLEX上进行项目管理
下一篇: Win32 API参考大全(四)
RabbitLBJ
博客等级 码龄18年 46粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值