CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

API对话框 调试求助!!!!!

楼主h1q1(h1q1)2004-05-04 17:30:52 在 VC/MFC / 基础类 提问

这程序小人调试好几十次都失败了,求高手指教!!!!  
  下面是程序代码及出错提示:  
   
  Dialog01.h   代码:  
   
  #define   IDM_OPEN     10               //1行              
  #define   IDM_SAVE   11  
  #define   IDM_SAVEAS   12  
  #define   IDM_EXIT     13  
  #define   IDM_SUM       14  
  #define   IDM_DEVIA     15  
  #define   IDM_STDDEVIA     16  
  #define   IDM_SUMHELP     17  
  #define   IDM_DEVIAHELP     18  
  #define   IDM_STDDEVIAHELP     19  
  #define   IDM_ABOUT       20             ////////     //11行    
   
  Dialog01.rc   代码:  
   
  #include<windows.h>             //   ////   //1行        
  #include"Dialog01.h"  
  Menu   MENU   DISCARDABLE  
  {  
      POPUP   "文件(&F)"  
      {  
          MENUITEM   "打开(&O)\t   Ctrl+O",IDM_OPEN  
          MENUITEM   "保存(&S)\t   Ctrl+S",IDM_SAVE  
          MENUITEM   "另存为(&A)",IDM_SAVEAS  
          MENUITEM   SEPARATOR                                               ////   ////   //10行        
          MENUITEM   "退出(&E)",IDM_EXIT  
      }  
      POPUP   "计算(&S)"              
      {  
          MENUITEM   "计算总和(&S)",IDM_SUM  
          MENUITEM   "计算方差(&D)",IDM_DEVIA  
          MENUITEM   "计算均方差(&T)",IDM_STDDEVIA  
      }  
   
      POPUP   "帮助(&H)"                     //   ////   //20行  
      {  
          MENUITEM   "计算总和帮助(&S)",IDM_SUMHELP  
          MENUITEM   "计算方差帮助(&D)",IDM_DEVIAHELP  
          MENUITEM   "计算均方差帮助(&T)",IDM_STDDEVIAHELP  
          MENUITEM   SEPARATOR  
          MENUITEM   "关于(&A)",   IDM_ABOUT  
      }  
  }  
  //===============加速键资源  
  Menu   ACCELERATORS                                   //////////////////   ////   //30行  
  {  
  "^O"   ,   IDM_OPEN  
          "^s"   ,   IDM_SAVE  
  }  
   
  About   DIALOG   10,10,100,50  
  STYLE   WS_POPUP|WS_CAPTION|WS_SYSMENU  
  CAPTION   "关于"  
  FONT   18,"楷体"//  
  {                                                         //   ////   ////////////40行  
  CTEXT   "windows模态对话框",-1,13,10,80,10      
  DEFPUSHBUTTON   "确定",IDOK,35,30,,30,12//IDOK,35,30,30,12   错    
  }  
  //   //=================位图资源=================  
   
  pic   BITMAP   "DfydSetB.bmp"       //////   ////   //46行      
   
    Dialog01.cpp   程序代码:  
     
  #include<windows.h>                         /////////////////   //1行  
  #include"Dialog01.h"  
  #include<stdlib.h>  
  #include<string.h>  
  BOOL   InitWindowsClass(HINSTANCE   hInstance);  
  BOOL   InitWindows(HINSTANCE   hInstance,int   nCmdShow);  
  LRESULT   CALLBACK   WndProc(HWND,UINT,WPARAM   ,LPARAM   );//窗口处理函数  
  BOOL   CALLBACK   DlgProc(HWND,UINT,WPARAM   ,LPARAM   );  
  //////////==========  
  HWND   hWndMain;                                               ////////   //10行  
  HINSTANCE   hInst;  
  HDC   hDC;  
  HDC   hdcmem;  
  HBITMAP   hBm;  
  BITMAP   bm;  
  int   iY=80;  
  int   iX=100;  
  int   iWindowWidth,iWindowHeight;  
  char   cUpWarn[]="已经达到顶部了,不能再向上移动了";  
  char   cDownWarn[]="已经达到底部了,不能再向下移动了";                 ///////////////20行        
  char   cLeftWarn[]="已经达到左底部了,不能再向左移动了";  
  char   cRightWarn[]="已经达到右底部了,不能再向右移动了";  
  char   hMenu[20];  
  int   WINAPI   WinMain(HINSTANCE   hInstance,HINSTANCE   hPreInstance,  
        LPSTR   lpCmdLine,int   nCmdShow)  
  {  
   
      MSG   Message;  
      hBm=LoadBitmap(hInstance,"pic");  
      GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);           ///////////////30行      
      iWindowWidth=2*bm.bmWidth;  
      iWindowHeight=2*bm.bmHeight;  
      HACCEL   hAccel;  
      if(!InitWindowsClass(hInstance))//hInstance从主函数传过来的  
            return   FALSE;  
      if(!InitWindows(hInstance,nCmdShow))  
      {       MessageBeep(0);//若注册失败则发出警告  
      return   FALSE;  
      }  
      hInst=hInstance;  
      hAccel=LoadAccelerators(hInst,hMenu);             /////////////////40行      
      while(GetMessage(&Message,0,0,0))//只有一个当前实例句炳  
      {        
      if(!TranslateAccelerator(hWndMain,hAccel,&Message))  
      {  
                  TranslateMessage(&Message);  
  DispatchMessage(&Message);  
   
      }  
      }                                           //////////////////////////////////////////50行      
  return   Message.wParam;  
  }  
  ///+++++++++++++++++++++===============================  
  LRESULT   WINAPI   WndProc(HWND   hWnd,UINT   message,WPARAM   wParam,LPARAM   lParam)  
  {   PAINTSTRUCT   ps;  
      switch(message)  
      {  
      case   WM_COMMAND:  
      switch(LOWORD(wParam))  
      {                                                       //////////////////////////////////////60行      
      case   IDM_OPEN:  
      MessageBox(hWnd,"文件已经打开","文件打开",MB_OK);  
      break;  
      case   IDM_SAVE:  
      MessageBox(hWnd,"文件保存成功","文件保存",MB_OK);  
      break;  
      case   IDM_ABOUT:  
      DialogBox(hInst,"About",hWnd,(DLGPROC)DlgProc);  
      break;  
      }                                   /////////////////////////////////////70行      
      break;  
      case   WM_LBUTTONDOWN:  
        iY=iY-1;             //位土高度  
        InvalidateRect(hWnd,NULL,1);  
        break;  
      case   WM_RBUTTONDOWN:  
      iY=iY+1;  
              InvalidateRect(hWnd,NULL,1);  
      break;  
      case   WM_KEYDOWN:                                               ////////////////////80行      
      switch(wParam)  
      {  
      case   VK_UP:  
      iY=iY-1;  
      break;  
      case   VK_DOWN:  
      iY=iY+1;  
      break;  
      case   VK_RIGHT:  
      iX=iX+1;                                   //////////////////90行      
      break;  
      case   VK_LEFT:  
      iX=iX-1;  
      break;  
      }  
      InvalidateRect(hWnd,NULL,1);  
      break;  
      case   WM_CREATE:  
                hDC=GetDC(hWnd);  
        hdcmem=CreateCompatibleDC(hDC);     ///////////////100行      
        ReleaseDC(hWnd,hDC);  
      case   WM_PAINT:  
      hDC=BeginPaint(hWnd,&ps);  
      if((iY>0&&iY<iWindowHeight/2)&&(iX>0&&iX<iWindowWidth/2))  
      {  
          SelectObject(hdcmem,hBm);  
  BitBlt(hDC,iX,iY,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);  
      }  
      else   if(iY<=0||iX<=0)  
      {   if(iY<=0)                               ////////////////////////////110行      
              //TextOut(hDC,0,0,cUpWarn,sizeof(cUpWarn));  
      MessageBox(hWnd,cUpWarn,"超出上框警告",MB_OK);  
          if(iX<=0)  
        TextOut(hDC,0,0,cLeftWarn,sizeof(cLeftWarn));  
      }  
        else  
        {   if(iY>=iWindowHeight/2)  
              TextOut(hDC,0,0,cDownWarn,sizeof(cDownWarn));  
            else  
                    TextOut(hDC,0,0,cRightWarn,sizeof(cRightWarn));   /////////////////120行      
        }  
      EndPaint(hWnd,&ps);  
              break;  
      case   WM_DESTROY:  
      PostQuitMessage(0);  
        return(0);  
      default:  
      return(DefWindowProc(hWnd   ,message,wParam,lParam));  
      }  
    return   0;               ////////////////////////////////130行      
  }  
  //========================================================  
  BOOL   InitWindowsClass(HINSTANCE   hInstance)  
  {  
  WNDCLASS   WndClass;  
      WndClass.cbClsExtra=0;  
      WndClass.cbWndExtra=0;  
      WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));  
      WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);  
      WndClass.hIcon=LoadIcon(NULL,"END");     /////////////////////////////140行      
      WndClass.hInstance=hInstance;  
      WndClass.lpfnWndProc=WndProc;  
      WndClass.lpszClassName="wndfill";  
      WndClass.lpszMenuName="Menu";  
      WndClass.style=CS_HREDRAW|CS_VREDRAW;  
      hMenu[20]=Menu;  
      return   RegisterClass(&WndClass);  
       
  }  
  BOOL   InitWindows(HINSTANCE   hInstance,int   nCmdShow)     ///////////////150行      
  {  
    HWND   hWnd;  
            hWnd=CreateWindow("wndfill","第一个事例",WS_OVERLAPPEDWINDOW|WS_VSCROLL|  
                                                                                    WS_HSCROLL,//|WS_POPUP,  
                              CW_USEDEFAULT,0,  
      CW_USEDEFAULT,0,  
      NULL,NULL,  
      hInstance,NULL);  
  if(!hWnd)  
  return   FALSE;                                     //////////////////////////160行      
  hWndMain=hWnd;  
  ShowWindow(hWnd,nCmdShow);//SW_SHOWNOACTIVE  
  UpdateWindow(hWnd);  
  return   TRUE;  
  }  
   
  LRESULT   CALLBACK   DlgProc(HWND   hdlg,UINT   Message,WPARAM   wParam,LPARAM   lParam)  
  {  
        switch(Message)  
        {                                                           ////////////////////170行      
        case   WM_INITDIALOG:  
        return   1;  
        case   WM_COMMAND:  
        switch(LOWORD(wParam))  
        {  
        case   IDOK:  
        EndDialog(hdlg,0);  
        return   1;  
        }  
        break;                                           ////////////////////////////////180行      
      case   WM_CLOSE:  
                EndDialog(hdlg,0);  
        return   1;  
        }  
        return   0;  
   
  }                                         ////////////////////////////////////187行      
   
   
  出错提示:  
   
  --------------------Configuration:   Dialog01   -   Win32   Debug--------------------  
  Compiling   resources...  
  C:\Program   Files\Microsoft   Visual   Studio\MyProjects\VC++\Dialog01\Dialog01.rc   (42):   error   RC2108   :   expected   numerical   dialog   constant  
  Error   executing   rc.exe.  
   
  Dialog01.exe   -   1   error(s),   0   warning(s)  
   
  问题点数:100、回复次数:4Top

1 楼code8238(二进制动物)回复于 2004-05-04 17:40:41 得分 10

把dialog01.rc贴出来看看呗Top

2 楼h1q1(h1q1)回复于 2004-05-04 18:14:45 得分 0

dialog01.rc   在   Dialog01.h   后面Top

3 楼newbibe(抵制日货)回复于 2004-05-04 18:29:36 得分 80

//MSDN    
   
   
  Visual   C++   概念:生成   C/C++   程序        
   
  资源编译器错误   RC2108不对称括号(Unbalanced   Parentheses)  
   
  左括号与右括号不匹配。  
   
  Top

4 楼ahu9870(阿胡9870)回复于 2004-05-04 18:57:24 得分 10

你的  
        0         zero     零  
  与  
        O         oh         字母    
   
  看不出来区别?Top

相关问题

  • ollydbg调试弹出对话框问题
  • 请问Delphi在调试中如何弹出一个对话框?
  • 编译执行后出现“可执行调试对话框”是什么意思?
  • 对话框与线程的问题以及调试的一个问题,谢谢
  • [求助]调试过程中出来个对话框,不知道什么意思
  • 使用API如何在对话框中绘图...
  • 使用API,如何在对话框中显示/更换图标?
  • 如何用API来打开WINDOWS中目录选择对话框
  • 打印时不显示打印对话框,如何做?用API
  • 请问怎样利用API实现查找替换对话框?

关键词

  • 代码
  • ws
  • idm
  • menuitem
  • cdownwarn
  • crightwarn
  • iwindowheight
  • hinstance
  • 计算
  • dialog01

得分解答快速导航

  • 帖主:h1q1
  • code8238
  • newbibe
  • ahu9870

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo