文档章节

Windows 编程[5] - 学习窗体生成的过程五

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 391
阅读 3
收藏 0
根据前面的介绍, 可以完成一个窗口的建立了:
program Project1;

uses
  Windows, Messages;

{窗口回调函数, 必须声明在使用它的程序前面}
function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
begin
  Result := 0;
  if msg = WM_DESTROY then {当窗口销毁时}
    PostQuitMessage(0)     {告诉 GetMessage: 退出吧!}
  else
    Result := DefWindowProc(wnd, msg, wParam, lParam); {其他消息做默认处理}
end;

{主程序}
var
  hWnd      : THandle;
  Msg       : TMsg;
  MyWndClass: TWndClass;
begin
  {指定窗口类型}
  MyWndClass.style         := CS_HREDRAW or CS_VREDRAW; {改变大小时重绘}
  MyWndClass.lpfnWndProc   := @WndProc;                 {回调函数指针}
  MyWndClass.cbClsExtra    := 0;                        {没有额外的窗口类信息}
  MyWndClass.cbWndExtra    := 0;                        {没有额外的窗口信息}
  MyWndClass.hInstance     := HInstance;                {程序实例句柄}
  MyWndClass.hIcon         := 0;                        {没指定图标}
  MyWndClass.hCursor       := LoadCursor(0, IDC_ARROW); {选用了系统提供的指针}
  MyWndClass.hbrBackground := HBRUSH(COLOR_WINDOW + 1); {背景色使用 Windows 默认的窗口颜色}
  MyWndClass.lpszMenuName  := nil;                      {不指定默认菜单}
  MyWndClass.lpszClassName := 'MyWindowClass';          {给窗口类型命名}

  {注册窗口类型}
  RegisterClass(MyWndClass);

  {建立窗口并返回句柄}
  hWnd := CreateWindow('MyWindowClass',        {窗口类型名}
                       '新窗口',               {标题}
                       WS_OVERLAPPEDWINDOW,    {窗口的常规样式}
                       Integer(CW_USEDEFAULT), {默认水平位置}
                       Integer(CW_USEDEFAULT), {默认垂直位置}
                       Integer(CW_USEDEFAULT), {默认宽度}
                       Integer(CW_USEDEFAULT), {默认高度}
                       0,                      {无父窗口}
                       0,                      {无主菜单}
                       HInstance,              {实例句柄}
                       nil                     {无附加信息}
                       );

  {显示窗口}
  ShowWindow(hWnd, SW_SHOWNORMAL);
  //UpdateWindow(hWnd); {这个更新窗口要不要好像都可以}

  {消息循环}
  while(GetMessage(Msg, 0, 0, 0)) do
  begin
    TranslateMessage(Msg); {对部分键盘消息的再处理}
    DispatchMessage(Msg);  {将消息发送给回调函数}
  end;

end.

 
 
 
 
 

 

 

  
接下来再继续完善这些代码!

本文转载自:http://www.cnblogs.com/del/archive/2008/04/15/1155189.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
MoreWindows博客目录(微软最有价值专家,原创技术文章152篇)

为了方便大家查找和学习,现将本人博客中所有博客文章列出目录。 一. 白话经典算法 目前有17篇,分为七大排序和经典面试题讲解两大类 1. 《白话经典算法系列之一 冒泡排序的三种实现》 2. 《...

morewindows
2013/12/24
0
0
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0
Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日)

Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日) 本周Windows 8开发学习资源更新 本周Silverlight学习资源更新 本周Windows Phone开发学习资源更新 本周WPF学习资源推荐 本周...

冷秋寒
06/29
0
0
使用 .NET 框架轻松开发完美的 Web 窗体控件

作者:David S. Platt 出自:微软 本文假定您熟悉 Visual Basic .NET、C# 和 HTML 下载本文的代码: WebC.exe (274KB) 摘要 预建的自定义控件可以简化和加快应用程序的设计,并使您能够维护 ...

晨曦之光
2012/03/09
1K
0
lichao/angular-ocDialog

angular-ocDialog 基于Angular的窗体应用框架 项目状态 综合情况 综合案例,实际正在开发的项目 Demo: http://probedemo.or-change.cn/probe 托管地址: https://git.oschina.net/increase/Le...

lichao
2015/10/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring MVC 通过@Value注解读取.properties配置内容

第一步: 在applicationContext.xml配置: <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations">......

wangyanbao
29分钟前
1
0
Rancher 2.1全面发布,优化Kubernetes集群运维

GitLab支持、CICD优化、项目配额管理、驱散容器功能等等,Rancher 2.1给你带来一大票惊喜新功能!还有备着【千元大奖】的用户体验计划等你来参与! Rancher 2.1已于近日全面发布! Rancher ...

RancherLabs
35分钟前
2
0
如何优雅的给淘客/京东及拼多多的代理(会员)发工资(佣金)

前段时间有一些做淘客和京东推广的朋友问我能不能开发一个代付系统,这样他们可以用来给代理和网站会员发工资,他们现在还是用的人工手动打款,不仅效率慢,而且还容易出错,我一想,嗯,不难...

千龍
40分钟前
5
0
try-catch-finally

try-catch-finally 一.执行顺序 try-catch-finally 包含的代码块,当 try 里面的代码出现异常的时候,会进入 catch 中,finally 代码块则在最后被执行,即 无论是否出现异常,finally 里面的...

tsmyk0715
46分钟前
2
0
【编程架构实战】——Java并发包基石-AQS详解

目录 1 基本实现原理 1.1 如何使用 1.2 设计思想 2 自定义同步器 2.1 同步器代码实现 2.2 同步器代码测试 3 源码分析 3.1 Node结点 3.2 独占式 3.3 共享式 4 总结   Java并发包(JUC)中提...

java知识分子
46分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部