cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1180|回复: 2

CVI中调用SDK平台API的问题

[复制链接]
发表于 2009-11-2 14:29:15 | 显示全部楼层 |阅读模式
想用SDK平台的GetGlyphOutline();函数来获取汉字轮廓。函数原型是:

DWORD GetGlyphOutline(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2)GetGlyphOutline这个函数在CVI中已经认到了。
问题的关键是,第一个参数是HDC hdc:设备环境句柄。这个在VC++6.0中只需要用GetDc就能够获取到设备环境,可是在CVI中确实不认的。不知道这个问题该如何处理?
只要能让我在CVI平台下成功调用该函数就可以了。多谢高手点拨!
发表于 2009-11-2 15:00:59 | 显示全部楼层
HDC hdc;
static int  handle;
static int panelHandle;

GetPanelAttribute(panelHandle, ATTR_SYSTEM_WINDOWS_HANDLE, &handle);
hdc = GetDC((HWND)handle);
......

注:因为CVI中只有面板才有句柄,所以你不可能得到控件的句柄!

评分

参与人数 1经验 +8 收起 理由
loongson + 8 多谢netcreature的再次帮助,几行字的回答如 ...

查看全部评分

 楼主| 发表于 2009-11-2 16:51:49 | 显示全部楼层
多谢netcreature的再次帮助,几行字的回答如醍醐灌顶,尤显功力深厚!
顺便说一下:“因为CVI中只有面板才有句柄,所以你不可能得到控件的句柄”,这句话不是很正确。
因为我在代码就用到了:GetObjHandleFromActiveXCtrl();函数,用于获取ActiveX控件的句柄。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-20 17:30 , Processed in 0.710889 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表