MFC:
1 HWND hCtrl = ::GetWindow(m_hWnd,GW_CHILD);
2 while(hCtrl)
3 {
4 //Do sth, like
5 //CWnd* pCtrl = CWnd::FromHandle(hCtrl);
6
7 hCtrl = ::GetWindow(hCtrl,GW_HWNDNEXT);
8 }
可以使用Windows API GetWindw()函数获取控件
函数原型:
HWND GetWindow( HWND hWnd, UINT uCmd );
hWnd:参考窗口句柄
uCmd:与hWnd的关系
如果存在参数指定关系的窗体,则返回句柄,否则返回NULL.
使用Ubuntu以来,一直是使用Ubuntu带的WUBI将其安装在Windows下的硬盘上。前两天希望从11.04升级到最新版本,一直升级不成功,于是打算直接重装。这次直接装在硬盘分区上。
可装完以后,发现一件很纠结的事:开机时,默认是使用的Ubuntu引导,默认选项是Ubuntu。而我希望默认启动的是Windows。
我上谷歌百度了一下,有讲到修改 /boot/grub/menu.lst文件达到变换启动顺序的目的。
但是在我系统的这个目录下并未发现有这个文件(我的系统是Ubuntu 12.10),可能是版本不一样吧。不过,这个目录下有一个文件 grub.cfg 与传说中的menu.lst格式好像差不多。于是我对这个文件做了修改。重启后,启动项成功改为Windows 7!
以下是修改过程:
继续阅读
R-Tree简介:
R-Tree是一种为空间查询而生的数据结构。只要给出一个空间对象的范围,使用R-Tree就可以快速而精确的查询出你所需要的空间对象(一个精确对象或是与之叠加的一组对象)。
让你的SQLite支持R-Tree
如果你使用的SQLite是从SQLite官网上直接下载的DLL文件,那么它应该已经包含了R-Tree功能模块。如果你使用的是自己定制的SQLite库,那么你在编译的时候,就需要打开R-Tree开关了(R-Tree模块默认是禁用的)。在C模式下编译的时候,添加 SQLITE_ENABLE_RTREE 宏开关,就可以获取R-Tree模块支持了。
在SQLite中使用R-Tree
构建R-Tree结构
SQLite中的R-Tree以虚表(Virtual Table)实现,最多支持5维空间索引。在N维R-Tree中,需要给出一个64位有符号整型作为索引(同时也是主键),然后给出N维的32位浮点数的空间范围值对。例如,一维的R-Tree,需要给出三个字段:索引、最小值、最大值,二维的R-Tree,需要给出五个字段:索引、X最小值、X最大值、Y最小值、Y最值…以此类推,五维的R-Tree,有11个字段。
在SQLite中创建一个R-Tree很简单,只需要一条Sql语句就可以搞定:
格式:CREATE VIRTUAL TABLE <name> USING rtree(<column-names>);
例如:CREATE VIRTUAL TABLE demo_index USING rtree(
id, — Integer primary key
minX, maxX, — Minimum and maximum X coordinate
minY, maxY — Minimum and maximum Y coordinate
);
继续阅读