《Windows程序设计》第2版 王艳平
Chap 3 Wind32执行单元
1. __stdcall的参数含义
参数右至左入stack
被调用程序负责清理stack
2. WaitForSingleObject(...)
http://happyhaoyun.blog.163.com/blog/static/2119926020103298504032/
3. 线程内核对象
context(寄存器)
exit code
signaled ? 在线程运行时,总是False
usage count
suspend count
4. 关于程序启动与结束过程的总结
当前程序(比如Command Shell)调用CreateProcess创建进程并加载程序
当前程序调用C/C++运行时程序初始化,比如,对全局静态变量初始化
C/C++运行时调用CreateThread创建主线程,并运行程序中的main函数
主线程执行,程序被执行
main函数返回return
C/C++运行时清理环境,如各种对象的析构函数
C/C++运行时调用ExitProcess
Chap 4 Windows图形界面
1. LPARM and WPARM
2. 窗口程序创建过程
* 注册窗口类RegisterClassEx
此步最重要的是两点:
a. 窗口处理函数
b. 窗口类的名字(字符串)
* 创建窗口CreateWindowEx
此步中窗口类名需要与register的匹配
* 显示窗口ShowWindow
* 更新窗口客户区UpdateWindows
* 消息处理循环
GetMessage
TranslateMessage
DispatchMessage
^ 此步中,OS将调用窗口类中指定的窗口处理函数
注1:将DispatchMessage语句注释后,程序对任何消息均无响应。
注2:Windows为每个thread维护一个message queue,通过GetMessage程序可以从当前thread的message queue中获得message
注3:GetMessage的循环当且仅当得到消息WM_QUIT的时候,返回0,从而中止循环,主线程执行到return,线程结束,进程结束。
3. WindowProc
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
^ __stdcall ^ msg id ^ param(16/32) ^ param(32)
4. MSG定义
typedef struct tagMSG {
HWND hwnd,
UNIT message,
WPARAM wParam,
LPARAM lParam,
DWORD time,
POINT pt
} MSG;
以前笔记中关于iPhone开发部分
2009-12-30
How to change the name of a class ?
代码编辑,行尾?
TIP: every view controller has one outlet
http://blog.csdn.net/crazyerghb2/archive/2009/08/15/4450741.aspx
4:00 PM
终于搞定Switch Viewe最简单版本:
l 每一个view controller必须有一个outlet的view,陪上outlet后,OK !
l YelloView.xib找不到(曾经改名),另生成一个新的Y2.xib, OK !