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

本文介绍了生成Dialog-based程序的方法。使用win32 Wizzard生成模版,生成Resource File并修改格式,将CreateWindow改为CreateDialog创建非模态对话框,修改消息处理回调函数,还提到dialog控件消息及相关函数,如DialogBox、CreateDialog等。

生成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()

 
 

源码链接: https://pan.quark.cn/s/a4b39357ea24 在本文中,我们将详细研究如何运用C# Winform应用程序来获取Excel文件中的内容并将其信息传输至数据库系统。这一流程包含若干核心环节,例如文件处理操作、数据解析工作以及与数据库系统的通信交互。C#是由Microsoft公司设计的一种面向对象的结构化编程语言,在Windows桌面应用程序开发领域具有广泛的应用,特别是Winform平台。Winform是.NET框架中提供的一个用户界面工具集,主要用于开发图形化用户界面的软件。在此情境下,我们设计一个Winform程序,使其能够通过图形用户界面与Excel文档进行交互。获取Excel文档内容通常需要借助外部库,比如NPOI或EPPlus,这两个库都是.NET环境下处理办公文档的强大工具。NPOI能够支持较旧版的Excel文件格式(.xls),而EPPlus则主要用来处理较新版本的OpenXML格式(.xlsx)。在本案例中,可能已经采用了其中一个库来完成相关功能。 以下是达成此功能的基本操作流程: 1. **安装库件**:在Visual Studio开发环境中,借助NuGet包管理器来安装NPOI或EPPlus库模块。 2. **启动Excel文件**:借助库提供的应用程序接口,例如NPOI中的`HSSFWorkbook`(针对.xls)或`ExcelPackage`(针对.xlsx),来打开指定路径的Excel文档。 3. **遍历工作表**:获取工作簿中的各个工作表,并逐一检查每一行和每一列。这可以通过NPOI中的`HSSFSheet`类或EPPlus中的`Worksheet`类来实现。 4. **获取单元格信息**:...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值