loongson 发表于 2009-11-2 14:29:15

CVI中调用SDK平台API的问题

想用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平台下成功调用该函数就可以了。多谢高手点拨!

netcreature 发表于 2009-11-2 15:00:59

HDC hdc;
static inthandle;
static int panelHandle;

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

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

loongson 发表于 2009-11-2 16:51:49

多谢netcreature的再次帮助,几行字的回答如醍醐灌顶,尤显功力深厚!
顺便说一下:“因为CVI中只有面板才有句柄,所以你不可能得到控件的句柄”,这句话不是很正确。
因为我在代码就用到了:GetObjHandleFromActiveXCtrl();函数,用于获取ActiveX控件的句柄。
页: [1]
查看完整版本: CVI中调用SDK平台API的问题