AO+C++实现文字注记方向为竖直
来源:互联网 发布:洞主卖香皂的淘宝店 编辑:程序博客网 时间:2024/05/29 09:58
尼玛,要不是大雨被困在公司,这个问题永远搞不出来了,困扰我一个星期了!!!!!!!
一个星期前就知道实现的思路,把文字注记的方向设为竖直,因为有个帖子也讨论过这个问题,给了思路,但是我写了代码就是不行。
原来的代码如下:
ICharacterOrientationPtr iporientation;ipTextSymbol->QueryInterface(&iporientation);iporientation->put_CJKCharactersRotation(true);ipTextSymbol->put_Angle(dAngle); //dAngle为-90.
这个代码在ESRI上问了好久也没人能说出来哪里错了,我是各种方法都试过了,就在刚刚想放弃的时候,我又试了一下把true改成VARIANT_TRUE类型试一下。奇迹出现了!!!!!
ICharacterOrientationPtr iporientation = ipTextSymbol;//一定要用这个变量来赋值VARIANT_BOOL truebool = VARIANT_TRUE;iporientation->put_CJKCharactersRotation(truebool);ipTextSymbol->put_Angle(dAngle);ipTextElement->put_Symbol(ipTextSymbol);
好吧。。。这个班总算没白加!!!
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上次刚加班完写下这点东西,也没深究到底为什么true就不行,为什么VARIANT_TRUE就可以,两个有什么却别呢?
今天回过头来翻了一下资料,果然两者是不一样的!
bool型与BOOL型
这两个有微小的区别,bool的变量时byte型(一个字节的长度),而BOOL是int型(四个字节的长度)。这个问题不大,都是定义了true为1,false为0.
下面是代码中afx.h中的定义
#define FALSE 0#define TRUE 1#define NULL 0
VARIANT_BOOL型
我们可以转到定义看一下VARIANT_TRUE和VARIANT_FALSE的定义:
#define VARIANT_TRUE ((VARIANT_BOOL)-1)#define VARIANT_FALSE ((VARIANT_BOOL)0)
看到了吧,区别就是VARIANT_TRUE被定义为-1了,而不是1!
所以碰到判断0与非0的情况,bool与VARIANT_BOOL还是通用的,显然,我上面代码中put_CJKCharactersRotation这个函数的判断不是这样的!
我也在代码中试过将truebool变量赋值1,-1来测试,结果只有-1文字方向才是会改变的。
所以以后碰到bool与VARIANT_BOOL还是区别开来用比较好
参考文章:http://wk.baidu.com/view/c858f0f90242a8956bece473?from=&ssid=&bd_page_type=1&uid=bk_1342984874_752&pu=sl%401%2Cpw%403000%2Csz%40224_220%2Cpd%401%2Cfz%402%2Clp%402%2Ctpl%40color&pn=1&st=1&set=num
- AO+C++实现文字注记方向为竖直
- 文字竖直方向的滚动
- AndroidTextView实现文字竖直显示
- 竖直方向的ViewPager的实现方式
- Android 通过CANVAS旋转 绘制文字 竖直方向DEMO
- 将VC++中的字体输出为竖直方向显示
- 2.手机竖直方向实现循环切换页面
- 竖直方向变加速运动
- android 通过canvas旋转 绘制文字 竖直等不同方向的显示
- 用CSS实现水平方向菜单&竖直方向菜单&下拉菜单
- android竖直显示文字
- 自定义竖直方向的ViewPager
- Android自定义竖直方向SeekBar
- QT之QTabWidget 为West方向时实现文字垂直显示
- QT实现竖直方向的窗口布局(使用QLayout类)
- 实现图片沿水平和竖直方向翻转(旋转180度)
- 竖直滚动 jquery 文字 图片
- Unity Text竖直显示文字
- Tarjan求有向图的强连通分量(Tarjan算法描述)
- JAVA中类型后面跟三个点
- HDU 1698 Just a Hook(线段树+简单lazy标记)
- 错误 101 (net::ERR_CONNECTION_RESET):连接已重置
- C#中使用DirectSound录音
- AO+C++实现文字注记方向为竖直
- 算法导论第十五章习题15.4-5
- Sublime Text 2配置强大的IDE开发环境,运行java
- malloc,calloc,realloc的理解
- Makefile学习之make 的运行
- 不用+-*/%实现整数的+-*/%运算
- html的id的属性innerHTML
- eclipse build 不能生成apk
- 802.11e 无线网络的QoS标准