@interface K3ViewController : UIViewController<UIAlertViewDelegate> @end #import "K3ViewController.h" @interface K3ViewController () @property (weak, nonatomic) IBOutlet UILabel *resultLabel; @end @implementation K3ViewController - (void)v…
思考一个最简单的程序行为:我们的Dialog上有一个Button, 当用户用鼠标点击这个Button时, 我们弹出一个MessageBox. 这个看似简单的行为, 谁能说清楚它是如何运行起来的,背后究竟发生了什么?  下面是我个人尝试的解答: (1)我们的鼠标点击事件到达设备的驱动程序, 驱动程序把消息放入系统硬件输入队列SHIQ(system hardware input queue). (2)通过系统的原始输入线程 RIT (raw input thread)把鼠标事件发送到对应的窗口.这里…
对类HelloWorld程序中添加一个MessageBox弹窗 分析: 任一程序运行的时候都会加载kernel32.dll的,但MessageBoxA()这个API却是在user32.dll中的.所以在HelloWorld.exe中是没办法直接添加MessageBoxA()的调用. 不过好在有kernel32.dll,其中有两个API可以解决user32.dll没加载的问题,分别是LoadLibraryA(filename)和GetProcAddress(hModule, 函数名). 操作: 清…
思考一个最简单的程序行为:我们的Dialog上有一个Button, 当用户用鼠标点击这个Button时, 我们弹出一个MessageBox.   这个看似简单的行为, 谁能说清楚它是如何运行起来的,背后究竟发生了什么?    下面是我个人尝试的解答:   (1)我们的鼠标点击事件到达设备的驱动程序, 驱动程序把消息放入系统硬件输入队列SHIQ(system hardware input queue).   (2)通过系统的原始输入线程 RIT (raw input thread)把鼠标事件发送到…
代码 // // CalculatorViewController.m // Calculator // // Created by sskset on 5/28/14. // Copyright (c) 2014 shanke. All rights reserved. // #import "CalculatorViewController.h" @interface CalculatorViewController () @property (weak, nonatomic) I…
今天遇到一个比较有意思的bug, 这里简单记录下. Bug的症状是通过拖拉边框把我们客户端主窗口拖小之后,再最大化,会发现窗口显示有问题, 看起来像是刷新问题, 有些地方显示的不对了. 这里要说明的是我这里的主窗口是非常复杂的窗口, 里面集成了很多组件(cpmponent),有很多层的子窗口. 这个问题只有在特定条件下才会发生, 正常情况下都是好的. 遇到这种问题,我们怎么处理?  首先当然是观察症状, 究竟是刷新问题, 还是Layout出错了. 我们可以通过Spy++查看窗口层次是不是正确,…
private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //弹出一个MessageBox判断是否删除 if (DialogResult.OK == MessageBox.Show("确定删除时间嘛?", "提示:", MessageBoxButtons.OKCancel,MessageBoxIcon.Information)) {…
可以通过看MessageBox.js的源码来深入认识,记住它的主要用法.Ext.MessageBox是实用类,用于生成不同风格的消息框,它是Singleton(单例),别名Ext.Msg.注意MessageBox是异步的,不同于一般的Javascript'alert'(它将停止浏览器的执行),显示一个MessageBox不会导致代码停止.出于这个原因,如果你有代码应该只运行在MessageBox用户反馈之后,你就应该加一个回调函数. Ext.MessageBox.alert() 样式:警告框只有…
什么是id,与void *的区别 id在Objective C中是一个类型,一个complier所认可的Objective C类型,跟void *是不一样的,比如一个 id userName, 和void *pUserName,[userName print] 是可以的,但[pUserName print] 在编译时就会报错,因为ObjeciveC的编译器看到id,会假定它可以接受任何message,虽然在runtime时可能并不是这样的,但pUserName并不是Objective C类型,编…
1. Ext.Msg.alert(String title,String msg)[Ext.MsssageBox.alert(Sting title,Sting msg,fn)]与javascript标准alert()的区别:​前者是异步执行的,不会影响到后面程序的执行,(把程序段放到回调函数里面去可以达到模仿标准alert的功能),后者是同步执行的,会阻止后面的程序的的执行: 2.具有确认按钮的提示框:Ext.MessegeBox.confirm(Sting title,String msg,…