vc菜谱详解--查询硬件信息篇

来源:互联网 发布:java 电商项目 面试题 编辑:程序博客网 时间:2024/04/29 13:23


BEGIN_MESSAGE_MAP( theClass, baseClass )宏用于定义自己的消息map,其中theClass用于指定map哪一个类,bashClass指定基类
该宏一般在(cpp)文件里使用并且应当放置在成员函数的定义之前,宏的使用以BEGIN_MESSAGE_MAP为开头,并在其后为每一个消息处理函数增加宏定义,最后还必须END_MESSAGE_MAP 为结尾。例如:
BEGIN_MESSAGE_MAP(CHardwareInfoApp, CWinApp)
//{{AFX_MSG_MAP(CHardwareInfoApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
//    DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()


当使用appWizard生成程序的时候,如果没有选择ActiveX控制的支持,程序员必须在手动增加AfxEnableControlContainer()函数调用。在对象的initInstance函数里面调用该函数可以提供对OLE控制包含的支持。


Enalbe3dControls()     当连接到MFC动态链接库的时候调用
Enalbe3dControlsStatic()    当静态的连接到MFC库的时候调用
以上两个函数是用于支持窗口和控制有3维的感觉(并且都在initInstance里面调用)

每一个由CCmdTarget演生出来的类,都必须提供消息隐射以便处理消息,此时DECLARE_MESSAGE_MAP()必须在类的定义最后调用

CWinApp *AfxGetApp() 返回一指针,该指针指向应用程序的CWinApp对象。

CWnd :: virtual void DoDataExchange(CDataExchange* pDX) 该函数由framework调用,用于交换和确认对话框数据。不要直接调用该函数,其应当被updatedate成员函数调用。调用updatedate的目的是初始化对话框的控制或者从对话框里面取得数据。

CWnd :: afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 第一个参数用于确定系统命令调用的类型。如果用鼠标选中了菜单命令,lParam包含了鼠标的坐标。低位字包含x的坐标,而高位包括y的坐标。当用户从控制菜单里面选择了命令或者当用户选者了最大化和最小话,程序框架将调用该函数。

CWnd::IsIconic()判断窗口是不是最小化

CWnd::SendMessage(UINT message, WPARAM wParam=0,LPARAM lParam=0)
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPara)

以两个函数都是用于发送消息。WM_ICONERASEBKGND消息被发送至最小化了的窗口,只有为窗口定义了icon的时候,窗口才回接受该消息。CDC::GetSafeHdc()得到设备上下问的handle.

GetSystemMetrics函数得到各种系统的指标和系统设置

typedef struct _SYSTEM_INFO { // sinf
    union {
        DWORD  dwOemId;
        struct {
            WORD wProcessorArchitecture;
            WORD wReserved;
        };
    };
    DWORD  dwPageSize;
    LPVOID lpMinimumApplicationAddress;
    LPVOID lpMaximumApplicationAddress;
    DWORD  dwActiveProcessorMask;
    DWORD  dwNumberOfProcessors;
    DWORD  dwProcessorType;
    DWORD  dwAllocationGranularity;
    WORD  wProcessorLevel;
    WORD  wProcessorRevision;
} SYSTEM_INFO

结构包括了当前计算机系统的信息,包括体系结构,处理器的类型,处理器的类别,页的大小
void GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);返回当前系统的信息