【XLL API 函数】xlAbort
C API 中有 15个 Excel 回调函数只能使用 Excel4、Excel4v、Excel12、Excel12v 函数调用(或间接的使用框架函数 Excel 或 Excel12f 调用)。也就是说,这15个函数只能从 DLL 或 XLL 调用。它们包括:
- xlAbort
- xlCoerce
- xlDefineBinaryName
- xlDisableXLMsgs
- xlEnableXLMsgs
- xlFree
- xlGetBinaryName
- xlGetHwnd
- xlGetInst
- xlGetName
- xlSet
- xlSheetId
- xlSheetNm
- xlStack
- xlUDF
xlAbort 函数
驱使处理器处理系统中的其它任务,检查用户是否按下了 ESC 键想要退出了宏。如果用户在计算期间按下了 ESC,工作表函数中调用此函数就可以检测到。
函数原型
Excel12(xlAbort, LPXLOPER12 pxRes, 1, LPXLOPER12 pxRetain);
参数
pxRetain (xltypeBool)
可选,如果是 FALSE, 函数就会检查中断条件,并清除所有挂起的中断。这可以让用户继续执行操作。如果忽略了这个函数或将参数设置为 TRUE,函数就会检查用户未清除的中止操作。
属性和返回值
如果用户按下了 ESC ,返回 TRUE(xltypeBool)。
备注
需要频繁调用
如果函数和命令将会花费大量时间,就应该频繁通过调用此函数使CPU 可以切换到其它的任务中去。
避免使用一些不好的语句
避免在你的用户接口中使用 “Abort"。应该考虑使用 ”Cancel"、"Halt"、"Break"、"Stop"。
实例
下面的代码,会反复的激活工作表中的单元格,直到 1分钟 过去或按下了 ESC。实例位于 : \SAMPLES\GENERIC\GENERIC.C
int WINAPI fDance(void)
{DWORD dtickStart;XLOPER12 xAbort, xConfirm;int boolSheet;int col=0;XCHAR rgch[32];//
// Check what kind of sheet is active. If it is a worksheet or macro
// sheet, this function will move the selection in a loop to show
// activity. In any case, it will update the status bar with a countdown.
//
// Call xlSheetId; if that fails the current sheet is not a macro sheet or
// worksheet. Next, get the time at which to start. Then start a while
// loop that will run for one minute. During the while loop, check if the
// user has pressed ESC. If true, confirm the abort. If the abort is
// confirmed, clear the message bar and return; if the abort is not
// confirmed, clear the abort state and continue. After checking for an
// abort, move the active cell if on a worksheet or macro. Then
// update the status bar with the time remaining.
//
// This block uses TempActiveCell12(), which creates a temporary XLOPER12.
// The XLOPER12 contains a reference to a single cell on the active sheet.
// This function is part of the framework library.
//boolSheet = (Excel12f(xlSheetId, 0, 0) == xlretSuccess);dtickStart = GetTickCount();while (GetTickCount() < dtickStart + 60000L){Excel12f(xlAbort, &xAbort, 0);if (xAbort.val.xbool){Excel12f(xlcAlert, &xConfirm, 2,TempStr12(L"Are you sure you want to cancel this operation?"),TempNum12(1));if (xConfirm.val.xbool){Excel12f(xlcMessage, 0, 1, TempBool12(0));return 1;}else{Excel12f(xlAbort, 0, 1, TempBool12(0));}}if (boolSheet){Excel12f(xlcSelect, 0, 1,TempActiveCell12(0,(BYTE)col));col = (col + 1) & 3;}wsprintfW(rgch,L"0:%lu",(60000 + dtickStart - GetTickCount()) / 1000L);Excel12f(xlcMessage, 0, 2, TempBool12(1), TempStr12(rgch));}Excel12f(xlcMessage, 0, 1, TempBool12(0));return 1;
}
转载于:https://www.cnblogs.com/boluoke/p/5945777.html
【XLL API 函数】xlAbort相关推荐
- 【XLL API 函数】xlSheetNm
从外部引用包含的工作表ID返回工作表或宏表名称,或是当前表名称. 原型 Excel12(xlSheetNm, LPXLOPER12 pxRes, 1, LPXLOPER12 pxExtref); 参数 ...
- 【XLL API 函数】xlCoerce
将 XLOPER/XLOPER12 转换为另一种类型,或是查询表格中的单元格值. 函数原型 Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSo ...
- 【XLL API 函数】 xlDefineBinaryName
用于为 xltypeBigData XLOPER/XLOPER12 分配永久存储名称.用于定义 workbook 保存的位名称,并能在任何时候通过定义名称来访问. 函数原型 Excel12(xlDef ...
- 【XLL 文档翻译】【第1部分】 Add-in 管理器 和 XLL 接口函数
xlAddInManagerInfo/xlAddInManagerInfo12 在 Excel 会话中,每一次调用 Add-In 管理器时,系统会调用这两个函数.此函数可以在 Add-In 管理器中提 ...
- Windows API函数大全
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同 ...
- [转]会自动消失的对话框API函数:MessageBoxTimeout
//以下两个函数由user32.dll导出,只是没有微软官方文档记载,大家在cpp中包含了以下部分,就可以调用MessageBoxTimeout了. extern "C"{int ...
- 管理输入光标的 WIN32 API 函数
下面的 API 函数是用来管理输入光标的 API 函数,下面是在使用C#时声明的这些函数: /**//// <summary> /// 参数说明: /// hwnd : ...
- Delphi 常用API 函数(好多都没见过)
2019独角兽企业重金招聘Python工程师标准>>> AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在 ...
- 用Debug函数实现API函数的跟踪
用Debug函数实现API函数的跟踪 如果我们能自己编写一个类似调试器的功能,这个调试器需要实现我们对于跟踪监视工具的要求,即自动记录输入输出参数,自动让目标进程继续运行.下面我们就来介绍在不知道函数 ...
最新文章
- java返回json ajax_Spring MVC 中 AJAX请求并返回JSON的示例
- netty 之 telnet HelloWorld 详解
- 本期赠书中奖名单公布
- 在D-Bus适配器中声明槽
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
- 织梦cms提交熊掌号php,织梦cms熊掌号历史数据提交教程
- 获取系统时间出错oracle-,oracle 获取系统时间(转)
- yii mysql gii_Yii Gii使用
- 服务器安装mysql_阿里云服务器上安装MySQL
- javaweb html5离线存储配置,JavaWeb 知识补充
- [Windows核心编程]堆
- 2021年中国一次性血压传感器市场趋势报告、技术动态创新及2027年市场预测
- js 基于函数伪造的方式实现继承
- Extjs4.1.x使用Application动态按需加载MVC各模块
- 火山PC_数据库知识_MySQL操作
- imp遇到重复数据_oracle的imp导入时覆盖目标数据库
- drupal mysql hash密码_drupal7 密码重置
- 浅谈垂直腔面发射激光器的设计原则
- 【Vuejs】1017- Vue3 效率提升主要表现在哪些方面?
- CCF过程记录以及经验总结