Win32编程--(VC7下Dialog-based程序的构建)

原创 2005年04月25日 09:19:00

生成Dialog-based程序

1.使用win32 Wizzard生成模版
2.生成Resource File(.rc)
Win32程序不支持VC7.0 Resource Editor编辑出来的对话框(Dialog)。
他的ResourceType为 DIALOGEX。修改的方法是将其改为 DIALOG,其他部分也作相应修改。最好变为vc6的格式。
相关文章见:
http://support.microsoft.com/default.aspx?scid=kb;en-us;138971

资源文件结构
见MSDN的
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/winui/winui/windowsuserinterface/resources/introductiontoresources/resourcefileformats.htm

ResourceID ResourceType Left,Top,Width,Height
STYLE
CAPTION
FONT
BEGIN
 //list of Controls created in the dialog
END

3.将CreateWindow改为CreateDialog()创建非模态对话框
4.修改消息处理回调函数:
 >>消息处理函数返回值为BOOL(可不变)
 >>如果窗口过程处理某消息,返回TRUE;不处理某消息,返回FALSE;
 >>CreateDialog()后,会发出WM_INITDIALOG,添加
 >>增加窗体关闭选项:
 1>
 WM_COMMAND
 ...
  case IDCANCEL:
  {
   EndDialog(hWnd,wmId);//仅关闭窗口
   PostMessage(hWnd,WM_DESTROY,0,0);//退出程序
   return TRUE;
  }
 >>非模态对话框的消息要经过程序的消息队列,这和模态对话框不同。要将这些消息传给对话框过程要更改消息循环。(可不变)
 if(hDlgWnd==0||!IsDialogMessage(hDlgWnd,&msg)){
  if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
  {
   TranslateMessage(&msg);
   DispatchMessage(&msg);
  }
 }
 2>去掉default的DefWindowProc这一项,使X按钮可用
 //default:
 // return DefWindowProc(hWnd, message, wParam, lParam);

5.所有dialog空件所发都是WM_COMMAND消息,LOWORD(wParam)得到ID号
6.几个函数:
建立模态对话框:DialogBox() vs 建立非模态对话框:CreateDialog()
结束对话框: EndDialog()
得到控件:GetDlgItem()

设置控件字符:SetWindowText()
得到控件字符:GetWindowText()

发送阻塞消息: SendMessage()
发送非阻塞消息: PostMessage()

 
 

【VC编程】笔记1--创建一个Win32的应用程序,并显示创建的窗口和菜单

/***************************************************************************************************...

Win7下配置nginx-1.10.3+php-7.1.1-nts-Win32-VC14-x64 Win7配置Nginx+PHP7

Win7配置Nginx+PHP7 Win7下配置nginx-1.10.3+php-7.1.1-nts-Win32-VC14-x64配置 nginx官方下载地址  http://nginx...

深入浅出VC++串口编程之基于Win32 API

1、API描述   在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。   打开串口   Win32 中用于打开串口的API 函数为Cre...

套接字编程(VC_Win32)

套接字编程(VC_Win32) 目录 套接字概述 相关函数 套接字编程 (本章节中例子都是用 VS2005 编译调试的) 相关文献: Socket模型详解(转) S...

套接字编程(VC_Win32)

套接字概述  简介(源于维基) Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统(于1983发布)的一套应用程序接口。然而,由于AT&T的专利保护着UNI...

深入浅出VC++串口编程之基于Win32 API

1、API描述   在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。   打开串口   Win32 中用于打开串口的API 函数为Cre...
  • ahoal
  • ahoal
  • 2011年10月16日 20:07
  • 274

VC++串口编程之基于Win32 API

1、API描述   在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。   打开串口   Win32 中用于打开串口的API 函数为Cre...
  • angxiao
  • angxiao
  • 2011年12月21日 11:44
  • 586

深入浅出VC++串口编程之基于Win32 API

1、API描述   在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。   打开串口   Win32 中用于打开串口的API 函数为Cre...

Vc 串口编程 Win32 控件

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方...
  • bbdxf
  • bbdxf
  • 2013年04月28日 09:35
  • 936

VC++2005运行Win32控制台程序时,为什么弹不出控制台窗口(无法看到运行结果)?

VC++中如果是按F5运行的话,表示以调试方式运行,如果遇到断点可以停下来,也可以单步调试、监视变量等。程序结束时立即退出。如果是按Ctrl+F5运行的话,表示以独立的方式运行,即使遇到断点也不会停下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Win32编程--(VC7下Dialog-based程序的构建)
举报原因:
原因补充:

(最多只允许输入30个字)