打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CDC::EnumObjects
int EnumObjects(    int nObjectType,    int ( CALLBACK * lpfn )( LPVOID, LPARAM ),    LPARAM lpData );

nObjectType

指定目标类型。 它可以具有值 OBJ_BRUSH 或 OBJ_PEN

lpfn

由应用程序提供的回调函数的程序实例地址。 请参见“备注”以下各节。

lpData

指向由应用程序提供的数据。 该数据传递给回调函数与对象信息。

指定 回调函数返回的最后一个值。 其含义是用户定义的。

对于给定类型的每个对象,通过调用回调函数调用与该对象的信息。 系统调用回调函数,它就对象或回调函数返回0。

请注意Microsoft Visual C++新功能允许您使用普通函数作为函数传递给 EnumObjects 该地址传递给 EnumObjects 是指向函数的指针导出与EXPORT 和使用Pascal调用约定。 在保护模式应用程序,因此不必使用Windows MakeProcInstance 函数创建此功能或释放函数使用后使用FreeProcInstance Windows功能。

您也不必导出在一个 EXPORTS 语句的函数名在应用程序的模块定义文件。 可以使用 EXPORT 功能修饰符,为

int CALLBACK EXPORT AFunction(LPSTRLPSTR);

导致编译器发出名称导出的相应导出记录,不带锯齿化。 对于大部分工作需要。 对于某些特殊情况,例如导出函数的序号或失真导出,您可以在模块定义文件仍需要使用 EXPORTS 语句。

对于生成的Microsoft基础程序,通常使用/GA和/GEs编译器选项。 /Gw编译器选项不使用Microsoft基础选件类。 (如果使用Windows功能MakeProcInstance,您将需要显式转换从 FARPROC 的返回的函数指针到此API需要的类型。)回调注册接口现在为类型安全的(在指向正确类型的特定回调的函数)的函数指针必须通过。

另外请注意所有回调函数必须在返回之前捕获Microsoft基础异常。Windows中,因为异常不能在回调边界时引发。 有关异常的更多信息,请参见文章 异常

// print some info about a pen we're ready to enumerateBOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */){   LOGPEN* pPen = (LOGPEN*) lpLogObject;   switch (pPen->lopnStyle)   {   case PS_SOLID:      TRACE0("PS_SOLID:      ");      break;   case PS_DASH:      TRACE0("PS_DASH:       ");      break;   case PS_DOT:      TRACE0("PS_DOT:        ");      break;   case PS_DASHDOT:      TRACE0("PS_DASHDOT:    ");      break;   case PS_DASHDOTDOT:      TRACE0("PS_DASHDOTDOT: ");      break;   case PS_NULL:      TRACE0("PS_NULL:       ");      break;   case PS_INSIDEFRAME:      TRACE0("PS_INSIDEFRAME:");      break;   default:      TRACE0("unk style:");   }   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);   return TRUE;}// get the default printer and enumerate the pens it has void CDCView::OnEnumPens(){   CPrintDialog dlg(FALSE);   dlg.GetDefaults();   HDC hdc = dlg.GetPrinterDC();   if (hdc != NULL)   {      CDC dc;      dc.Attach(hdc);      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));   }}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
def文件使用详解
用Win32 application建立窗体_入门
LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别(转)
转 WINDOW进程间数据通讯以及共享内存
Win32程序标准开发流程
喜讯:由*.dll文件得出*.lib文件的方法已经找到__问吧_所有相关_中国学网
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服