簡體   English   中英

LVITEM字段是puColumns和piColFmt指針還是整數?

[英]Are LVITEM fields puColumns and piColFmt pointers or integers?

在此問題中發現了LVITEM的64位字段之后,我不知道最后一件事。 文檔說:

  1. puColumns是一個UINT。 它是指向列索引數組的指針,用於指定要為此項目顯示哪些列以及這些列的順序。
  2. piColFmt是一個整數。 它是指向以下標志(單獨或組合)的數組的指針,這些標志指定擴展的切片視圖中每個子項目的格式。

我的問題是為什么它們是整數而不是指針? 在64位體系結構中,它們應該像指針一樣占用8個字節,還是像整數一樣占用4個字節?

謝謝!

因此Windows SDK說:

typedef struct tagLVITEMA
{
    UINT mask;
    int iItem;
    int iSubItem;
    UINT state;
    UINT stateMask;
    LPSTR pszText;
    int cchTextMax;
    int iImage;
    LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
    int iIndent;
#endif
#if (_WIN32_WINNT >= 0x0501)
    int iGroupId;
    UINT cColumns; // tile view columns
    PUINT puColumns;
#endif
#if _WIN32_WINNT >= 0x0600 // Will be unused downlevel, but sizeof(LVITEMA) must be equal to sizeof(LVITEMW)
    int* piColFmt;
    int iGroup; // readonly. only valid for owner data.
#endif
} LVITEMA, *LPLVITEMA;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM