CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

照着书上编的对话框例子,居然调试不通过,请大侠指点!!

楼主forfor11(沸腾生活)2005-03-09 15:04:55 在 VC/MFC / 界面 提问

照着书上例子编的程序,这是一个模态对话框的例子,该对话框含有标题栏,系统菜单,简要信息及一个按钮控件。调试时不能通过,请各位大侠帮我看看。  
   
  以下是dial.cpp  
  #include   <windows.h>  
  #include   "7_3.h"  
  HINSTANCE   hInst;  
  LRESULT   CALLBACK   WndProc(HWND,UINT,WPARAM,LPARAM);  
  BOOL   CALLBACK   DlgProc(HWND,UINT,WPARAM,LPARAM);  
  int   WINAPI   WinMain(HINSTANCE   hInstance,HINSTANCE   hPrevInst,LPSTR   lpszCmdLine,int   nCmdShow)  
  {  
  HWND   hwnd;  
  MSG   Msg;  
  HACCEL   hAccel;  
  WNDCLASS   wndclass;  
  char   lpszMenuName[]="Menu";  
  char   lpszClassName[]="模态对话框";  
  char   lpszTitle[]="模态对话框样例";  
  wndclass.style=0;  
  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(WHITE_BRUSH);  
  wndclass.lpszMenuName=lpszMenuName;  
  wndclass.lpszClassName=lpszClassName;  
  if(!RegisterClass(&wndclass))  
  {  
  MessageBeep(0);  
  return   FALSE;  
  }  
  hwnd=CreateWindow(lpszClassName,  
                              lpszTitle,  
      WS_OVERLAPPEDWINDOW,  
      CW_USEDEFAULT,  
      CW_USEDEFAULT,  
      CW_USEDEFAULT,  
      CW_USEDEFAULT,  
      NULL,  
      NULL,  
      hInstance,  
      NULL);  
  ShowWindow(hwnd,nCmdShow);  
  UpdateWindow(hwnd);  
  hInst=hInstance;  
  hAccel=LoadAccelerators(hInst,lpszMenuName);  
  while(GetMessage(&Msg,NULL,0,0))  
  {  
  if(!TranslateAccelerator(hwnd,hAccel,&Msg))  
  {  
  TranslateMessage(&Msg);  
  DispatchMessage(&Msg);  
  }  
  }  
  return   Msg.wParam;  
  }  
   
   
  LRESULT   CALLBACK   WndProc(HWND   hwnd,UINT   message,WPARAM   wParam,LPARAM   lParam)  
  {  
  switch(message)  
  {  
  case   WM_COMMAND:  
  switch(LOWORD(wParam))  
  {  
  case   IDM_OPEN:  
  MessageBox(hwnd,"文件已打开","文件打开",MB_OK);  
          break;  
  case   IDM_SAVE:  
  MessageBox(hwnd,"文件保存成功","文件保存",MB_OK);  
  break;  
  case   IDM_EXIT:  
  SendMessage(hwnd,WM_DESTROY,0,0);  
  break;  
  case   IDM_ABOUT:  
  DialogBox(hInst,"About",hwnd,(DLGPROC)DlgProc);  
  break;  
  }  
          break;  
  case   WM_DESTROY:  
  PostQuitMessage(0);  
  break;  
  default:  
  return   DefWindowProc(hwnd,message,wParam,lParam);  
  }  
  return   0;  
   
   
  BOOL   CALLBACK   DlgProc(HWND   hdlg,UINT   message,WPARAM   wParam,LPARAM   lParam)  
  {  
  switch(message)  
  {  
  case   WM_INITDIALOG:  
  return   1;  
  case   WM_COMMAND:  
  switch   (LOWORD(wParam))  
  {  
  case   IDOK:  
  EndDialog(hdlg,0);  
  return   1;  
  }  
  break;  
  case   WM_CLOSE:  
  EndDialog(hdlg,0);  
  return   1;  
  }  
  return   0;  
  }  
   
   
  以下是1.rc  
  #include<windows.h>  
  #include"7_3.h"  
  Menu   MENU   DISCARDABLE  
  {  
  POPUP   "文件&F)"  
  {  
  MENUITEM   "打开(&O)\t   Ctrl+O",IDM_OPEN  
  MENUITEM   SEPARATOR  
  MENUITEM   "保存(&S)\t   Ctrl+S",IDM_SAVE  
  MENUITEM   SEPARATOR  
  MENUITEM   "退出(&X)",IDM_EXIT  
  }  
  POPUP   "帮助(&H)"  
  {  
  MENUITEM   "关于(&A)...",IDM_ABOUT  
  }  
  }  
   
  Menu   ACCELERATORS  
  {  
  "^O",IDM_OPEN  
  "^S",IDM_SAVE  
  }  
   
   
  About   DIALOG   10,10,100,50  
  STYLE   WS_POPUP|WS_CAPTION|WS_SYSMENU  
  CAPTION   "关于"  
  FONT   18   "楷体"  
  {       CTEXT   "Windows模态对话框",-1,13,10,80,10  
          DEFPUSHBUTTON   "确定",IDOK,35,30,30,12  
  }  
   
   
  以下是7_3.h  
  #define   IDM_OPEN     11  
  #define   IDM_SAVE     13  
  #define   IDM_EXIT     15  
  #define   IDM_ABOUT     20 问题点数:20、回复次数:8Top

1 楼happyparrot(快乐鹦鹉)回复于 2005-03-09 15:09:56 得分 0

请先说明到哪里时调试通不过?Top

2 楼forfor11(沸腾生活)回复于 2005-03-09 15:12:29 得分 0

编译捍示信息为:  
   
  -------------------Configuration:   diolag1   -   Win32   Debug--------------------  
  Compiling...  
  dial.cpp  
  E:\study\VC练习\diolag1\dial.cpp(88)   :   error   C2601:   'DlgProc'   :   local   function   definitions   are   illegal  
  E:\study\VC练习\diolag1\dial.cpp(108)   :   fatal   error   C1004:   unexpected   end   of   file   found  
  Error   executing   cl.exe.  
   
  diolag1.exe   -   2   error(s),   0   warning(s)  
  Top

3 楼saliors(正在学习中)回复于 2005-03-09 15:41:56 得分 5

LRESULT   CALLBACK   WndProc(HWND   hwnd,UINT   message,WPARAM   wParam,LPARAM   lParam)  
  函数最后少了一个}号Top

4 楼forfor11(沸腾生活)回复于 2005-03-09 15:51:26 得分 0

谢谢saliors!  
  我修改后,再编译时的提示为:  
  --------------------Configuration:   dialog1   -   Win32   Debug--------------------  
  Compiling   resources...  
  E:\study\VC练习\diolag1\7_3.h(4)   :   fatal   error   RC1004:   unexpected   end   of   file   found  
  Error   executing   rc.exe.  
   
  dialog1.exe   -   1   error(s),   0   warning(s)  
  Top

5 楼bobob(静思)回复于 2005-03-09 16:01:39 得分 0

把7_3.h贴出来Top

6 楼forfor11(沸腾生活)回复于 2005-03-09 16:07:34 得分 0

to     bobob:  
  7_3.h在我的楼顶的帖子里的最下面:)Top

7 楼bobob(静思)回复于 2005-03-09 16:14:58 得分 15

在头文件最后一行加一个回车Top

8 楼forfor11(沸腾生活)回复于 2005-03-09 16:21:10 得分 0

谢谢bobob(静思--潜心研究PDF),搞定:)Top

相关问题

  • ollydbg调试弹出对话框问题
  • 寻求文件对话框例子
  • 在VC中调试c++ primer的例子程序的问题,请高手指点??
  • 对话框的ID问题!请高手指点!!多谢!!!
  • 怎样改变对话框的背景色???高手指点???
  • 怎么对话框没有出来,高手指点一下!!
  • 对话框的问题,麻烦高手指点!!
  • 怎么重绘对话框,急,请高手务必指点
  • 对话框的问题,很烦,请指点
  • 请问Delphi在调试中如何弹出一个对话框?

关键词

  • win32
  • ws
  • cpp
  • vc
  • null
  • diolag1
  • wndclass
  • idm
  • 模态对话框
  • 例子

得分解答快速导航

  • 帖主:forfor11
  • saliors
  • bobob

相关链接

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

广告也精彩

反馈

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