Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vývojáři aplikací můžou pomocí struktury MSAAMENUINFO zveřejnit názvy položek nabídek nakreslených vlastníkem. Přidružením této struktury k datům položek nabídky kreslených vlastníkem nemusíte položky nabídky zpřístupnit pomocí IAccessible.
Při vytváření nabídky nakreslené vlastníkem definujte třídu nebo strukturu pro data položek nabídky nakreslených vlastníkem a vytvořte instance této třídy pro každou položku nabídky. Při přidávání položek do nabídky předejte ukazatel na data položky.
Chcete-li zveřejnit názvy položek nabídky, MSAAMENUINFO struktura musí být prvním členem struktury, která definuje data položky specifické pro aplikaci, jak je znázorněno v následujícím příkladu:
// Application-specific owner-drawn menu info struct. Owner-drawn data
// is a pointer to one of these.
struct MenuEntry
{
MSAAMENUINFO m_MSAA; // MSAA info - must be first member
LPTSTR m_pName; // Displayed menu text or NULL for
// separator item
int m_CmdID; // Menu command ID
int m_IconIndex; // Index of icon in bitmap or -1 for
// for separator
};
Struktura MSAAMENUINFO nemůže být členem třídy, která obsahuje virtuální funkce. Při kompilaci kódu je prvním členem třídy vždy ukazatel vygenerovaný kompilátorem na tabulku virtuálních funkcí. Chcete-li tento problém vyřešit, vytvořte datovou strukturu položky, která obsahuje MSAAMENUINFO jako první člen. Druhý člen je ukazatel na instanci třídy, která definuje vlastníkem vykreslená data. Následující příklad ukazuje tuto techniku.
// Application-defined class that contains the owner-drawn data and
// virtual functions that operate on that data.
class MenuEntry
{
LPTSTR m_pName; // Displayed menu text or NULL for
// separator item.
int m_CmdID; // Menu command ID
int m_IconIndex; // Index of icon in bitmap or -1 for
// separator item
virtual void m_AnimateIcon();
virtual void m_ChangeIconColor();
}
// Application-defined struct that contains MSAAMENUINFO as first
// member. Second member points to owner-drawn data.
struct MenuInfo
{
MSAAMENUINFO m_MSAA; // MSAA info - must be first member
MenuEntry *pMenuData; // Points to the owner-drawn data
}
Při přidávání položek do nabídky předejte ukazatel na instanci struktury, která obsahuje MSAAMENUINFO, aby se zobrazily názvy položek nabídky.