关于窗体问题

jy01807853 2008-06-08 05:50:15

//请大家帮我看下我这段代码
//为什么编译器会提示,变量为定义
//我都在头文件里面定义好了的,迷茫
//.hpp
#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics[0]))

struct
{
int iIndex ;
TCHAR *szLable ;
TCHAR *szDesc ;
}
sysmetrics [] =
{
SM_CXSCREEN, TEXT("SM_CXSCREEN"),
TEXT("Screen width in pixels"),
SM_CYSCREEN, TEXT("SM_CYSCREEN"),
TEXT("Screen height in pixles"),
SM_CXVSCROLL, TEXT("SM_CXSCROLL"),
TEXT("Vertical scroll width"),
SM_CYHSCROLL, TEXT("SM_CYHSCROLL"),
TEXT("Horizontal scroll heigth"),
SM_CYCAPTION, TEXT("SM_CYCAPTION"),
TEXT("Caption bar heigth"),
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 wndth"),
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("SSM_CXICON,"),
TEXT("lcon width"),
SM_CYICON, TEXT("SM_CYICON"),
TEXT("lcon 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 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 sizeing frame width"),
SM_CYSIZEFRAME, TEXT("SM_CYSIZEFRAME"),
TEXT("window sizeing 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_DXDRAG"),
TEXT("avokl 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")
};
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jy01807853 2008-06-08
  • 打赏
  • 举报
回复

//这是我刚才用GCC编译出现的错误提示
//和我用VC2003效果是一样的
//问题还是在这郁闷
/*hh.cpp:86: error: `szLable' undeclared (first use this function)
hh.cpp:86: error: (Each undeclared identifier is reported only once for each function it appears in.)

hh.cpp:87: error: `sysmetrice' undeclared (first use this function)
hh.cpp:90: error: `szDesc' undeclared (first use this function)
hh.cpp:97: error: `iIndex' undeclared (first use this function)

make.exe: *** [hh.o] Error 1

Execution terminated
*/
jy01807853 2008-06-08
  • 打赏
  • 举报
回复

//错误的提示就是

// iIndex ;
szLable ;
szDesc
这几个变量未定义
郁闷了
//system.h就是我前面那个
头文件的名字
我在1楼贴出来的
chnliujd 2008-06-08
  • 打赏
  • 举报
回复
TextOut(hdc,0,cyChar * i,
sysmetrics[i],szLable,
lstrlen(sysmetrice[i],szLable));
这里是不是应该是
TextOut(hdc,0,cyChar * i,
sysmetrics[i].index,sysmetrics[i].szLable,
lstrlen(sysmetrics[i].index,sysmetrics[i].szLable));
chnliujd 2008-06-08
  • 打赏
  • 举报
回复
struct
{
int iIndex ;
TCHAR *szLable ;
TCHAR *szDesc ;
}
sysmetrics [] =
{
你得给结构起个名字吧。sysmetrics 看意思应该是个变量名

struct Mystruct
{
int iIndex ;
TCHAR *szLable ;
TCHAR *szDesc ;
};

Mystruct sysmetrics []
{
}
chnliujd 2008-06-08
  • 打赏
  • 举报
回复
system.h是什么文件?
具体的错误贴出来
jy01807853 2008-06-08
  • 打赏
  • 举报
回复
请高手帮我看下麻烦了
我找了很久没发现问题
jy01807853 2008-06-08
  • 打赏
  • 举报
回复

//.cpp
#include <windows.h>
#include "sysmets.h"

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
static TCHAR szAppName[]=TEXT("SysMetsl");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;

if(!RegisterClass (&wndclass))
{
MessageBox(NULL,TEXT("This program requires Windows NT!"),
szAppName,MB_ICONERROR);
return 0;

}

hwnd=CreateWindow (szAppName,
TEXT("Get System Metrics No.1"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);


while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
static int cxChar,cxCaps,cyChar;
HDC hdc;
PAINTSTRUCT ps;
TEXTMETRIC tm;
int i;
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_PAINT:
hdc=BeginPaint(hwnd,&ps);

for(i=0;i<NUMLINES;i++)
{
TextOut(hdc,0,cyChar * i,
sysmetrics[i],szLable,
lstrlen(sysmetrice[i],szLable));

TextOut(hdc,22 * cxCaps,cyChar * i,
sysmetrics[i],szDesc,
lstrlen(sysmetrics[i],szDesc));

SetTextAlign(hdc,TA_RIGHT | TA_TOP);

TextOut(hdc,22 * cxCaps +40 * cxChar,cyChar * i,szBuffer,
wsprintf(szBuffer,TEXT("%5d"),
GetSystemMetrics(sysmetrics[i],iIndex)));
SetTextAlign(hdc,TA_LEFT | TA_TOP);
}
EndPaint(hwnd,&ps);
return 0;

case WM_DESTROY:
PostQuitMessage(0);
return 0;
}

return DefWindowProc(hwnd,message,wParam,lParam);
}

项目名称:[精仿]360安全卫士-10.30更新(CSkin Demo) 界面库版本号:10.30 最新版本 下载内容: 精仿360安全卫士源码一份, 可引用至工具箱最新版CSkin.dll一份 实现功能: 1.发光标题。 2.直角边框和阴影。 3.360安全卫士主界面模仿。 4.多系统支持,不需要win8系统,即可实现win8风格的360。 5.自定义控件的美化使用。 界面库更新文档: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签中添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分中文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件中可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 小编:下载不要分,DEMO教你如何熟练使用CSkin界面库美化自己的窗体。 友情链接: http://bbs.csdn.net/topics/390510544 (精仿QQ2013局域通讯) http://download.csdn.net/detail/lyx_520/5710799 (C#实现Win8窗体)
项目名称:高仿QQ2013通讯DEMO-10.30更新 版本号:10.30 最新版本 下载内容: (C#)CC2013局域网通讯源码一份, 可引用至工具箱最新版CSkin.dll-10.30版本界面库一份。 界面库更新说明: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签中添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分中文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件中可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 实现功能: 1.界面库中多达25个自定义换肤控件,让每个控件设设属性就能达到你想要的效果,支持图片换肤和色调绘制。 2.四边阴影,毛边效果,可以设置阴影宽度和阴影颜色,支持所有系统。 3.拥有密码键盘输入,防护更贴心。 4.8种圆角窗体模式供你选择,淋漓尽致,润滑如圆。 5.登录主界面后,有登陆提示窗,提示上次登录的城市和时间。 6.皮肤随心变:拖动任意一张图片至主界面,就可以改变皮肤。 7.皮肤色调获取:改变皮肤的同时,将计算图片色调,再将其运用到窗体背景色。 8.皮肤尾部渐变:上下左右方均可实现,渐变皮肤。 9.皮肤拖拉方向:可以选择皮肤在拉伸的时候,粘着哪一边拖拉。 10.GDI+界面重绘,处理消息机制,3种移动模式和拉伸是否启用只需要设置一个属性的事就可以解决。 11.界面渐变闪现和闪退:不再像平凡的突然出现,采用API渐变机制,渐渐出现和消失,win7系统下还有动态缩小至任务的效果。 12.完美好友列表,可添加上千好友,不卡不掉线,还可以拖动好友到其他分组。 13.好友悬浮至头像可以查看详细资料卡。 14.窗口可调渐变后透明度:让窗体看起来更像是Vista玻璃窗体风格。 15.聊天窗口可发送图片,大文件,表情,还有震动。 16.按钮控件背景色拥有继承窗体背景主色调的功能,让整体色调保持一致。 17.更是有和如出一辙的扣扣截图。仿真度也达到100%,完美修复所有已知BUG。 18.聊天窗口,可以调字体颜色和字体样式等多项功能。 20.SkinLabel与SkinButton控件字体与窗体标题可以根据背景色暗亮度自动调节字体为黑还是白。 21.MessageBox提示框的美化,并继承调用窗口的色调与背景,MessageBox可所谓已达到帅气的不能再帅气的境界了。 22.天气皮肤自动变,所有窗体根据当地天气自动决定皮肤背景,CC最帅气功能之一。 23.个人资料卡及聊天窗体拥有动态CC秀展示。 24.主界面拖动换肤的同时,所关联的子窗体皮肤也会跟着变。 25.多线程大文件传输功能,支持无上限大文件传输,有进度条显示进程度。 26.界面库已封装了大图取主色调,颜色判断暗亮等多项功能。 27.如果你觉得获取天气让你的登录太慢不想要的话,注释相关调用方法即可快速登录。 界面库交流群:306485590 本人QQ:345015918 注意: Demo版不包括更新,为方便用户查看和使用属性等方法,dll只轻微加密。想反编译的就不要尝试了,里面有上百个类,改错改到你哭。 介意购买正版,永久更新配源码。 看截图或者想购买商业版的用户请访问以下地址: http://www.51aspx.com/code/TotalLikeQQ2013 特权:购买商业版的用户,有权利享有最快的更新服务,第一时间将最新版本的dll源码送到你手上。 使本项目源码或本项目生成的DLL前请仔细阅读以下协议内容,如果你同意以下协议才能使用本项目所有的功能,否则如果你违反了以下协议,有可能陷入法律纠纷和赔偿,作者保留追究法律责任的权利。 1、你可以在开发的软件产品中使用和修改本项目的源码和DLL,但是请保留所有相关的版权信息。 2、不能将本项目源码与作者的其他项目整合作为一个单独的软件售卖给他人使用。 3、不能传播本项目的源码和DLL,包括上传到网上、拷贝给他人等方式。 4、以上协议暂时定制,由于还不完善,作者保留以后修改协议的权利。 时间:2013-7-5 作者: 乔克斯 请保留以上版权信息,否则作者将保留追究法律责任。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧