关于WinCE下显示驱动中的SetMode函数

telemem   2010-6-2 16:29 楼主
WinCE下显示驱动中有DDGPE::SetMode (int modeId, HPALETTE *palette)函数
modeId:用来设置当前显示模式如:640*480,800*480等
请问下wince下是如何调用SetMode 函数的,这个modeId的值是如何指定的。

回复评论 (1)

s3c2440disp.h里面:
class S3C2440DISP : public DDGPE
{
protected:
        GPEModeEx               m_ModeInfoEx;           // local mode info
            ULONG                   m_nSurfaceBitsAlign;    // Surface bits alignments

private:
        GPEMode                        m_ModeInfo;
        DWORD                        m_cbScanLineLength;
        DWORD                        m_cxPhysicalScreen;
        DWORD                        m_cyPhysicalScreen;
        DWORD                        m_colorDepth;
        DWORD                        m_VirtualFrameBuffer;
        DWORD                        m_FrameBufferSize;
    SurfaceHeap            *m_pVideoMemoryHeap;     // Base entry representing all video memory
        BOOL                        m_CursorDisabled;
        BOOL                        m_CursorVisible;
        BOOL                        m_CursorForcedOff;
        RECTL                        m_CursorRect;
        POINTL                        m_CursorSize;
        POINTL                        m_CursorHotspot;
        UCHAR                        *m_CursorBackingStore;
        UCHAR                        *m_CursorXorShape;
        UCHAR                        *m_CursorAndShape;
    ULONG            m_VideoPowerState;
    DWORD            m_dwLCDPhysicalFrameBase;
    DWORD            m_bClearAlternateVideoBCR;

public:
        S3C2440DISP(void);
        ~S3C2440DISP();
        virtual INT        NumModes(void);
        virtual SCODE        SetMode(INT modeId,        HPALETTE *palette);
......
就是这么调用的。
modeID成员是显示工作模式的编号索引值,由显示设备驱动的开发者负责为一个显示设备的所有可支持的工作模式编号,这个索引值只对一个显示设备是唯一的,并非全局唯一。在结构体GPEMode里面有这个结构体的定义。
点赞  2010-6-7 15:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复