使用 API 函数 RegisterClass 注册窗口; 使用 API 函数 CreateWindowEx 创建窗口; 使用 API 函数 ShowWindow 显示窗口; 最后退出时使用 API 函数 DestroyWindow 销毁窗口。 ISynchronizeInvoke提供了一个普通的标准机制用于在其他线程的对象中进行方法调用。例如,如果一个对象实现了ISynchronizeInvoke,那么在线程T1上的客户端可以在该对象中调用ISynchronizeInvoke的Invoke()方法。Invoke()方法的实现会阻塞(block)该线程的调用,它将调用打包发送(marshal)到 T2,并在T2中执行调用,再将返回值发送会T1,然后返回到T1的客户端。Invoke()方法以一个代理来定位该方法在T2中的调用,并以一个普通的对象数组做为其参数。
调用者还可以检查InvokeRequired属性,因为你既可以在同一线程中调用ISynchronizeInvoke也可以将它重新定位(redirect)到其他线程中去。如果InvokeRequired的返回值是false的话,则调用者可以直接调用该对象的方法。 从字面上就能很容易的指导每个枚举值所代表的按钮。需要说明的是,含有Retry的枚举值现在很少使用,这是MS-DOS在过去当用户试图访问一个由于某种原因
而无法响应的设备(通常是软盘)而显示的消息。
当你需要Ok和Cancel按钮时可以这样调用Show()
|