Add to patch 1671804 (menu alignment for VC6) so that it does work, and move
it to msw/missing.h. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -138,6 +138,40 @@
|
|||||||
#define LWA_ALPHA 2
|
#define LWA_ALPHA 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined __VISUALC__ && __VISUALC__ <= 1200 && !defined MIIM_BITMAP
|
||||||
|
#define MIIM_STRING 0x00000040
|
||||||
|
#define MIIM_BITMAP 0x00000080
|
||||||
|
#define MIIM_FTYPE 0x00000100
|
||||||
|
#define HBMMENU_CALLBACK ((HBITMAP) -1)
|
||||||
|
typedef struct tagMENUINFO
|
||||||
|
{
|
||||||
|
DWORD cbSize;
|
||||||
|
DWORD fMask;
|
||||||
|
DWORD dwStyle;
|
||||||
|
UINT cyMax;
|
||||||
|
HBRUSH hbrBack;
|
||||||
|
DWORD dwContextHelpID;
|
||||||
|
DWORD dwMenuData;
|
||||||
|
} MENUINFO, FAR *LPMENUINFO;
|
||||||
|
struct wxMENUITEMINFO_
|
||||||
|
{
|
||||||
|
UINT cbSize;
|
||||||
|
UINT fMask;
|
||||||
|
UINT fType;
|
||||||
|
UINT fState;
|
||||||
|
UINT wID;
|
||||||
|
HMENU hSubMenu;
|
||||||
|
HBITMAP hbmpChecked;
|
||||||
|
HBITMAP hbmpUnchecked;
|
||||||
|
DWORD dwItemData;
|
||||||
|
LPTSTR dwTypeData;
|
||||||
|
UINT cch;
|
||||||
|
HBITMAP hbmpItem;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
#define wxMENUITEMINFO_ MENUITEMINFO
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following are required for VC++ 5 when the PSDK is not available.
|
* The following are required for VC++ 5 when the PSDK is not available.
|
||||||
*/
|
*/
|
||||||
|
@@ -59,25 +59,7 @@
|
|||||||
// other standard headers
|
// other standard headers
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
//VC6 needs these defining, though they are in winuser.h
|
#if wxUSE_OWNER_DRAWN && defined(MIIM_BITMAP)
|
||||||
#ifndef MIIM_BITMAP
|
|
||||||
#define MIIM_STRING 0x00000040
|
|
||||||
#define MIIM_BITMAP 0x00000080
|
|
||||||
#define MIIM_FTYPE 0x00000100
|
|
||||||
#define HBMMENU_CALLBACK ((HBITMAP) -1)
|
|
||||||
typedef struct tagMENUINFO
|
|
||||||
{
|
|
||||||
DWORD cbSize;
|
|
||||||
DWORD fMask;
|
|
||||||
DWORD dwStyle;
|
|
||||||
UINT cyMax;
|
|
||||||
HBRUSH hbrBack;
|
|
||||||
DWORD dwContextHelpID;
|
|
||||||
DWORD dwMenuData;
|
|
||||||
} MENUINFO, FAR *LPMENUINFO;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_OWNER_DRAWN
|
|
||||||
#include "wx/dynlib.h"
|
#include "wx/dynlib.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -453,10 +435,11 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
{
|
{
|
||||||
// try to use InsertMenuItem() as it's guaranteed to look correct
|
// try to use InsertMenuItem() as it's guaranteed to look correct
|
||||||
// while our owner-drawn code is not
|
// while our owner-drawn code is not
|
||||||
#ifndef __DMC__
|
|
||||||
// DMC at march 2007 doesn't have HBITMAP hbmpItem tagMENUITEMINFOA /W
|
// first compile-time check
|
||||||
// MIIM_BITMAP only works under WinME/2000+
|
// MIIM_BITMAP only works under Win98/2000+
|
||||||
WinStruct<MENUITEMINFO> mii;
|
#if defined(MIIM_BITMAP) && (_WIN32_WINNT >= 0x0500)
|
||||||
|
WinStruct<wxMENUITEMINFO_> mii;
|
||||||
if ( wxGetWinVersion() >= wxWinVersion_98 )
|
if ( wxGetWinVersion() >= wxWinVersion_98 )
|
||||||
{
|
{
|
||||||
mii.fMask = MIIM_STRING | MIIM_DATA | MIIM_BITMAP;
|
mii.fMask = MIIM_STRING | MIIM_DATA | MIIM_BITMAP;
|
||||||
@@ -496,7 +479,8 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
}
|
}
|
||||||
mii.hbmpItem = HBMMENU_CALLBACK;
|
mii.hbmpItem = HBMMENU_CALLBACK;
|
||||||
|
|
||||||
ok = ::InsertMenuItem(GetHmenu(), pos, TRUE /* by pos */, &mii);
|
ok = ::InsertMenuItem(GetHmenu(), pos, TRUE /* by pos */,
|
||||||
|
(MENUITEMINFO*)&mii);
|
||||||
if ( !ok )
|
if ( !ok )
|
||||||
{
|
{
|
||||||
wxLogLastError(wxT("InsertMenuItem()"));
|
wxLogLastError(wxT("InsertMenuItem()"));
|
||||||
@@ -528,7 +512,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
pItem->ResetOwnerDrawn();
|
pItem->ResetOwnerDrawn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // __DMC__
|
#endif // defined(MIIM_BITMAP) && (_WIN32_WINNT >= 0x0500)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !ok )
|
if ( !ok )
|
||||||
|
Reference in New Issue
Block a user