24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1037  |  回复: 0

追梦进行曲

金虫 (小有名气)

[求助] 大神们,帮忙看看问题处在哪?版本VS2013

// 头文件   SYSMETS.h
#define NUMLINES   ((int)(sizeof sysmetrics/sizeof sysmetrics[0]))
struct
{
        int iIndex;
        TCHAR *szLabel;
        TCHAR *szDesc;

};
int sysmetrics[]=
{
        SM_CXSCREEN, TEXT("SM_CXSCREEN"),
        TEXT("Screen width in pixels"),

        SM_CYSCREEN, TEXT("SM_CYSCREEN"),
        TEXT("Screen height in pixels"),

        SM_CXVSCROLL, TEXT("SM_CXVSCROLL"),
        TEXT("Vertical scroll width"),

        SM_CYHSCROLL, TEXT("SM_CYHSCROLL"),
        TEXT("Horizontal scroll height"),

        SM_CYCAPTION, TEXT("SM_CYCAPTION"),
        TEXT("Caption bar height"),

        SM_CXBORDER, TEXT("SM_CXBORDER"),
        TEXT("Window border width"),

        SM_CYBORDER, TEXT("SM_CYBORDER"),
        TEXT("Window border height"),

        SM_CXFIXEDFRAME, TEXT("SM_CXFIXEDFRAME"),
        TEXT("Dialog window frame width"),

        SM_CYFIXEDFRAME, TEXT("SM_CYFIXEDFRAME"),
        TEXT("Dialog window frame height"),

        SM_CYVTHUMB, TEXT("SM_CYVTHUMB"),
        TEXT("Vertical scroll thumb height"),

        SM_CXHTHUMB, TEXT("SM_CXHTHUMB"),
        TEXT("Horizontal scroll thumb width"),

        SM_CXICON, TEXT("SM_CXICON"),
        TEXT("Icon width"),

        SM_CYICON, TEXT("SM_CYICON"),
        TEXT("Icon height"),

        SM_CXCURSOR, TEXT("SM_CXCURSOR"),
        TEXT("Cursor width"),

        SM_CYCURSOR, TEXT("SM_CYCURSOR"),
        TEXT("Cursor height"),

        SM_CYMENU, TEXT("SM_CYMENU"),
        TEXT("Menu bar height"),

        SM_CXFULLSCREEN, TEXT("SM_CXFULLSCREEN"),
        TEXT("Full screen client area width"),

        SM_CYFULLSCREEN, TEXT("SM_CYFULLSCREEN"),
        TEXT("Full screen client area height"),

        SM_CYKANJIWINDOW, TEXT("SM_CYKANJIWINDOW"),
        TEXT("Kanji window height"),

        SM_MOUSEPRESENT, TEXT("SM_MOUSEPRESENT"),
        TEXT("Mouse present flag"),

        SM_CYVSCROLL, TEXT("SM_CYVSCROLL"),
        TEXT("Vertical scroll arrow height"),

        SM_CXHSCROLL, TEXT("SM_CXHSCROLL"),
        TEXT("Horizontal scroll arrow width"),

        SM_DEBUG, TEXT("SM_DEBUG"),
        TEXT("Debug version flag"),

        SM_SWAPBUTTON, TEXT("SM_SWAPBUTTON"),
        TEXT("Mouse buttons swapped flag"),

        SM_CXMIN, TEXT("SM_CXMIN"),
        TEXT("Minimum window width"),

        SM_CYMIN, TEXT("SM_CYMIN"),
        TEXT("Minimum window height"),

        SM_CXSIZE, TEXT("SM_CXSIZE"),
        TEXT("Min/Max/Close button width"),

        SM_CYSIZE, TEXT("SM_CYSIZE"),
        TEXT("Min/Max/Close button height"),

        SM_CXSIZEFRAME, TEXT("SM_CXSIZEFRAME"),
        TEXT("Window sizing frame width"),

        SM_CYSIZEFRAME, TEXT("SM_CYSIZEFRAME"),
        TEXT("Window sizing frame height"),

        SM_CXMINTRACK, TEXT("SM_CXMINTRACK"),
        TEXT("Minimum window tracking width"),

        SM_CYMINTRACK, TEXT("SM_CYMINTRACK"),
        TEXT("Minimum window tracking height"),

        SM_CXDOUBLECLK, TEXT("SM_CXDOUBLECLK"),
        TEXT("Double click x tolerance"),

        SM_CYDOUBLECLK, TEXT("SM_CYDOUBLECLK"),
        TEXT("Double click y tolerance"),

        SM_CXICONSPACING, TEXT("SM_CXICONSPACING"),
        TEXT("Horizontal icon spacing"),

        SM_CYICONSPACING, TEXT("SM_CYICONSPACING"),
        TEXT("Vertical icon spacing"),

        SM_MENUDROPALIGNMENT, TEXT("SM_MENUDROPALIGNMENT"),
        TEXT("Left or right menu drop"),

        SM_PENWINDOWS, TEXT("SM_PENWINDOWS"),
        TEXT("Pen extensions installed"),

        SM_DBCSENABLED, TEXT("SM_DBCSENABLED"),
        TEXT("Double-Byte Char Set enabled"),

        SM_CMOUSEBUTTONS, TEXT("SM_CMOUSEBUTTONS"),
        TEXT("Number of mouse buttons"),

        SM_SECURE, TEXT("SM_SECURE"),
        TEXT("Security present flag"),

        SM_CXEDGE, TEXT("SM_CXEDGE"),
        TEXT("3-D border width"),

        SM_CYEDGE, TEXT("SM_CYEDGE"),
        TEXT("3-D border height"),

        SM_CXMINSPACING, TEXT("SM_CXMINSPACING"),
        TEXT("Minimized window spacing width"),

        SM_CYMINSPACING, TEXT("SM_CYMINSPACING"),
        TEXT("Minimized window spacing height"),

        SM_CXSMICON, TEXT("SM_CXSMICON"),
        TEXT("Small icon width"),

        SM_CYSMICON, TEXT("SM_CYSMICON"),
        TEXT("Small icon height"),

        SM_CYSMCAPTION, TEXT("SM_CYSMCAPTION"),
        TEXT("Small caption height"),

        SM_CXSMSIZE, TEXT("SM_CXSMSIZE"),
        TEXT("Small caption button width"),

        SM_CYSMSIZE, TEXT("SM_CYSMSIZE"),
        TEXT("Small caption button height"),

        SM_CXMENUSIZE, TEXT("SM_CXMENUSIZE"),
        TEXT("Menu bar button width"),

        SM_CYMENUSIZE, TEXT("SM_CYMENUSIZE"),
        TEXT("Menu bar button height"),

        SM_ARRANGE, TEXT("SM_ARRANGE"),
        TEXT("How minimized windows arranged"),

        SM_CXMINIMIZED, TEXT("SM_CXMINIMIZED"),
        TEXT("Minimized window width"),

        SM_CYMINIMIZED, TEXT("SM_CYMINIMIZED"),
        TEXT("Minimized window height"),

        SM_CXMAXTRACK, TEXT("SM_CXMAXTRACK"),
        TEXT("Maximum draggable width"),

        SM_CYMAXTRACK, TEXT("SM_CYMAXTRACK"),
        TEXT("Maximum draggable height"),

        SM_CXMAXIMIZED, TEXT("SM_CXMAXIMIZED"),
        TEXT("Width of maximized window"),

        SM_CYMAXIMIZED, TEXT("SM_CYMAXIMIZED"),
        TEXT("Height of maximized window"),

        SM_NETWORK, TEXT("SM_NETWORK"),
        TEXT("Network present flag"),

        SM_CLEANBOOT, TEXT("SM_CLEANBOOT"),
        TEXT("How system was booted"),

        SM_CXDRAG, TEXT("SM_CXDRAG"),
        TEXT("Avoid drag x tolerance"),

        SM_CYDRAG, TEXT("SM_CYDRAG"),
        TEXT("Avoid drag y tolerance"),

        SM_SHOWSOUNDS, TEXT("SM_SHOWSOUNDS"),
        TEXT("Present sounds visually"),

        SM_CXMENUCHECK, TEXT("SM_CXMENUCHECK"),
        TEXT("Menu check-mark width"),

        SM_CYMENUCHECK, TEXT("SM_CYMENUCHECK"),
        TEXT("Menu check-mark height"),

        SM_SLOWMACHINE, TEXT("SM_SLOWMACHINE"),
        TEXT("Slow processor flag"),

        SM_MIDEASTENABLED, TEXT("SM_MIDEASTENABLED"),
        TEXT("Hebrew and Arabic enabled flag"),

        SM_MOUSEWHEELPRESENT, TEXT("SM_MOUSEWHEELPRESENT"),
        TEXT("Mouse wheel present flag"),

        SM_XVIRTUALSCREEN, TEXT("SM_XVIRTUALSCREEN"),
        TEXT("Virtual screen x origin"),

        SM_YVIRTUALSCREEN, TEXT("SM_YVIRTUALSCREEN"),
        TEXT("Virtual screen y origin"),

        SM_CXVIRTUALSCREEN, TEXT("SM_CXVIRTUALSCREEN"),
        TEXT("Virtual screen width"),

        SM_CYVIRTUALSCREEN, TEXT("SM_CYVIRTUALSCREEN"),
        TEXT("Virtual screen height"),

        SM_CMONITORS, TEXT("SM_CMONITORS"),
        TEXT("Number of monitors"),

        SM_SAMEDISPLAYFORMAT, TEXT("SM_SAMEDISPLAYFORMAT"),
        TEXT("Same color format flag")

};




//*************************************
// 源文件   win1.cpp : 定义应用程序的入口点。
//

#include "stdafx.h"
#include "win1.h"
#include "SYSMETS.h"
#include <windows.h>

#define MAX_LOADSTRING 100

// 全局变量:
HINSTANCE hInst;                                                                // 当前实例
TCHAR szTitle[MAX_LOADSTRING];                                        // 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING];                        // 主窗口类名

// 此代码模块中包含的函数的前向声明:
ATOM                                MyRegisterClass(HINSTANCE hInstance);
BOOL                                InitInstance(HINSTANCE, int);
LRESULT CALLBACK        WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK        About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPTSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
        UNREFERENCED_PARAMETER(hPrevInstance);
        UNREFERENCED_PARAMETER(lpCmdLine);

        // TODO:  在此放置代码。
        MSG msg;
        HACCEL hAccelTable;
       

        // 初始化全局字符串
        LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
        LoadString(hInstance, IDC_WIN1, szWindowClass, MAX_LOADSTRING);
        MyRegisterClass(hInstance);

        // 执行应用程序初始化:
        if (!InitInstance (hInstance, nCmdShow))
        {
                return FALSE;
        }

        hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN1));

        // 主消息循环:
        while (GetMessage(&msg, NULL, 0, 0))
        {
                if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
                {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
        }

        return (int) msg.wParam;
}



//
//  函数:  MyRegisterClass()
//
//  目的:  注册窗口类。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
        WNDCLASSEX wcex;

        wcex.cbSize = sizeof(WNDCLASSEX);

        wcex.style                        = CS_HREDRAW | CS_VREDRAW;
        wcex.lpfnWndProc        = WndProc;
        wcex.cbClsExtra                = 0;
        wcex.cbWndExtra                = 0;
        wcex.hInstance                = hInstance;
        wcex.hIcon                        = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN1));
        wcex.hCursor                = LoadCursor(NULL, IDC_ARROW);
        wcex.hbrBackground        = (HBRUSH)(COLOR_WINDOW+1);
        wcex.lpszMenuName = NULL;// MAKEINTRESOURCE(IDC_WIN1);
        wcex.lpszClassName        = szWindowClass;
        wcex.hIconSm                = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

        return RegisterClassEx(&wcex);
}

//
//   函数:  InitInstance(HINSTANCE, int)
//
//   目的:  保存实例句柄并创建主窗口
//
//   注释:
//
//        在此函数中,我们在全局变量中保存实例句柄并
//        创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // 将实例句柄存储在全局变量中

   hWnd = CreateWindow(szWindowClass, TEXT("Get System Metrics No.1"), WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

//
//  函数:  WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    处理主窗口的消息。
//
//  WM_COMMAND        - 处理应用程序菜单
//  WM_PAINT        - 绘制主窗口
//  WM_DESTROY        - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        int wmId, wmEvent;
        PAINTSTRUCT ps;
        HDC hdc;
        HWND hwnd;
        static int cxChar, cxCaps, cyChar;
        int i;
        TEXTMETRIC tm;
        TCHAR szBuffer[10];

        switch (message)
        {
        case WM_CREATE:
                hdc = GetDC(hwnd);
                GetTextMetrics(hdc, &tm);
                cxChar = tm.tmAveCharWidth;
                cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2)*cxChar / 2;
                cyChar = tm.tmHeight + tm.tmExternalLeading;
                ReleaseDC(hwnd, hdc);
                return 0;
        case WM_COMMAND:
                wmId    = LOWORD(wParam);
                wmEvent = HIWORD(wParam);
                // 分析菜单选择:
                switch (wmId)
                {
                case IDM_ABOUT:
                        DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                        break;
                case IDM_EXIT:
                        DestroyWindow(hWnd);
                        break;
                default:
                        return DefWindowProc(hWnd, message, wParam, lParam);
                }
                break;
        case WM_PAINT:
                hdc = BeginPaint(hWnd, &ps);
                // TODO:  在此添加任意绘图代码...
                for (i = 0; i < NUMLINES; i++)
                {
                        TextOut(hdc, 0, cyChar * i, sysmetrics.szLabel, lstrlen(sysmetrics.szLabel));
                        TextOut(hdc, 22 * cxCaps, cyChar * i, sysmetrics.szDesc, lstrlen(sysmetrics.szDesc));
                        SetTextAlign(hdc, TA_RIGHT | TA_TOP);
                        TextOut(hdc, 22 * cxCaps + 40 * cxChar, cyChar*i, szBuffer, wsprintf(szBuffer, TEXT("%5d"),GetSystemMetrics(sysmetrics.iIndex)));
                        SetTextAlign(hdc, TA_LEFT | TA_TOP);

                }

                EndPaint(hWnd, &ps);
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hWnd, message, wParam, lParam);
        }
        return 0;
}

// “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
        UNREFERENCED_PARAMETER(lParam);
        switch (message)
        {
        case WM_INITDIALOG:
                return (INT_PTR)TRUE;

        case WM_COMMAND:
                if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
                {
                        EndDialog(hDlg, LOWORD(wParam));
                        return (INT_PTR)TRUE;
                }
                break;
        }
        return (INT_PTR)FALSE;
}






//********************************************
//错误
1>------ 已启动生成:  项目: win1, 配置: Debug Win32 ------
1>  win1.cpp
1>d:\c\c++\win1\win1\sysmets.h(9): warning C4094: 无标记的“struct”未声明符号
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [12]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [23]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [24]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [13]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [22]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [25]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [19]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [20]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [21]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [16]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [26]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [27]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [29]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [30]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [10]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [11]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [14]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [31]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [17]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [9]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [28]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [15]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [18]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\sysmets.h(237): error C2440: “初始化”: 无法从“const wchar_t [32]”转换为“int”
1>          没有使该转换得以执行的上下文
1>d:\c\c++\win1\win1\win1.cpp(171): error C2228: “.szLabel”的左边必须有类/结构/联合
1>          类型是“int”
1>d:\c\c++\win1\win1\win1.cpp(171): error C2660: “TextOutW”: 函数不接受 3 个参数
1>d:\c\c++\win1\win1\win1.cpp(172): error C2228: “.szDesc”的左边必须有类/结构/联合
1>          类型是“int”
1>d:\c\c++\win1\win1\win1.cpp(172): error C2660: “TextOutW”: 函数不接受 3 个参数
1>d:\c\c++\win1\win1\win1.cpp(174): error C2228: “.iIndex”的左边必须有类/结构/联合
1>          类型是“int”
========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 追梦进行曲 的主题更新
信息提示
请填处理意见