递归火山软件开发平台

标题: 又有掉头发的结构体出现了。 [打印本页]

作者: server    时间: 2024-3-17 19:11
标题: 又有掉头发的结构体出现了。

联合体 union 还没支持。 结构体的预处理 呢??

  1. typedef struct _NOTIFYICONDATAA {
  2.   DWORD cbSize;
  3.   HWND  hWnd;
  4.   UINT  uID;
  5.   UINT  uFlags;
  6.   UINT  uCallbackMessage;
  7.   HICON hIcon;
  8. #if ...
  9.   CHAR  szTip[64];
  10. #else
  11.   CHAR  szTip[128];
  12. #endif
  13.   DWORD dwState;
  14.   DWORD dwStateMask;
  15.   CHAR  szInfo[256];
  16.   union {
  17.     UINT uTimeout;
  18.     UINT uVersion;
  19.   } DUMMYUNIONNAME;
  20.   CHAR  szInfoTitle[64];
  21.   DWORD dwInfoFlags;
  22.   GUID  guidItem;
  23.   HICON hBalloonIcon;
  24. } NOTIFYICONDATAA, *PNOTIFYICONDATAA;
复制代码



作者: 609177738    时间: 2024-3-17 20:49
szTip  (宏条件分支的变量名称都一样) 和  联合体   直接别名类型  输出名 就行了
作者: server    时间: 2024-3-17 21:24
609177738 发表于 2024-3-17 20:49
szTip  (宏条件分支的变量名称都一样) 和  联合体   直接别名类型  输出名 就行了 ...

各种方式都试了;
CommCtrl.h
CommCtrl.lib
都引用了,就是编译不通过,提示未标识 TASKDIALOGCONFIG

  1. TaskDialogIndirect
复制代码
  1. TASKDIALOGCONFIG config = { 0 };
  2. config.cbSize = sizeof(TASKDIALOGCONFIG);
  3. config.hwndParent = NULL;
  4. config.pszWindowTitle = L"标题";
  5. config.pszMainInstruction = L"主提示";
  6. config.pszContent = L"内容";
  7. config.dwCommonButtons = TDCBF_OK_BUTTON;

  8. HRESULT hr = TaskDialogIndirect(&config, NULL, NULL, NULL);

  9. if (SUCCEEDED(hr))
  10. {

  11. }
复制代码




作者: Xelloss0618    时间: 2024-3-17 22:16
用「别名类型:本地结构」可以封装,就是很多类型需要定义或改成属性读写方法。
TASKDIALOGCONFIG 最低系统要求是Windows Vista,这种API和结构体,一般是需要定义一下版本宏才能调用
@视窗.预定义宏 "WINVER=0x0600,_WIN32_WINNT=0x0600"




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4