24小时学DX之第一小时——win32窗体

原创 2004年09月14日 22:14:00

#include

//函数声明
BOOL InitWindow( HINSTANCE hInstance, int nCmdShow );
LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );

//变量说明
HWND hWnd; //窗口句柄
//************************************************************
//函数:WinMain( )
//功能:Windows程序入口函数。创建主窗口,处理消息循环
//************************************************************
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
if ( !InitWindow( hInstance, nCmdShow ) ) return FALSE; //创建主窗口
//如果创建不成功则返回FALSE并同时退出程序
MSG msg;
//进入消息循环:
for(;;)
{
?if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
?{
??if ( msg.message==WM_QUIT) break;
??TranslateMessage(&msg);
??DispatchMessage(&msg);
?}
}
return msg.wParam;
}

//************************************************************
//函数:InitWindow( )
//功能:创建窗口
//************************************************************

static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow )
{
?//定义窗口风格:
?WNDCLASS wc;
?wc.style = CS_VREDRAW|CS_HREDRAW;//窗体类的风格
?wc.lpfnWndProc = (WNDPROC)WinProc; //窗口消息处理函数的指针
?wc.cbClsExtra = 0;//分配给窗口类结构之后的额外字节数
?wc.cbWndExtra = 0;//分配给窗口实例之后的额外字节数
?wc.hInstance = hInstance;//窗口所对应的应用程序的句柄
?wc.hIcon = NULL;//窗口的图标
?wc.hCursor = NULL; //窗口的鼠标
?wc.hbrBackground = CreateSolidBrush (RGB(0, 0, 0)); //黑色的背景
?wc.lpszMenuName = NULL;//窗口的菜单资源名称
?wc.lpszClassName = "My_Test";//窗口类的名称
?RegisterClass(&wc);//注册窗口

??? //按所给参数创造窗口
???? hWnd = CreateWindow("My_Test",//创建窗口所用的窗口类的名称
?? "24小时学DX_第1个小时",//窗口标题
?? WS_POPUP|WS_CAPTION,//窗口风格,定义为普通型
?? 0,0,//窗口位置的x,y坐标
?? 800,600,//窗口的宽度,高度
?? NULL,//父窗口句柄
?? NULL,//菜单句柄
?? hInstance,//应用程序句柄
?? NULL);
?if( !hWnd ) return FALSE;
?ShowWindow(hWnd,nCmdShow);//显示窗口
?UpdateWindow(hWnd);//刷新窗口
?return TRUE;
}

//************************************************************
//函数:WinProc( )
//功能:处理窗口消息
//************************************************************

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_KEYDOWN://击键消息
switch( wParam )
{
case VK_ESCAPE:
PostMessage(hWnd, WM_CLOSE, 0, 0);//给窗口发送WM_CLOSE消息
break;
}
return 0; //处理完一个消息后返回0

??case WM_CLOSE: //准备退出
??DestroyWindow( hWnd ); //释放窗口
??return 0;

case WM_RBUTTONDOWN:
return 0;

?case WM_DESTROY: //如果窗口被人释放…
?PostQuitMessage( 0 ); //给窗口发送WM_QUIT消息
?return 0;
}
//调用缺省消息处理过程
return DefWindowProc(hWnd, message, wParam, lParam);
}

DX窗体控件篇_介绍(1)

WinForms Controls窗体控件 1.该内容纯个人兴趣喜好进行翻译,如果涉及到版权问题请联系; 2.后续我会坚持翻译 DX的官方使用文档,以及控件的个人使用心得,转载请注明出处; ...
  • linhuaxiacs
  • linhuaxiacs
  • 2017年01月17日 10:02
  • 563

NSDateFormatter之24小时制探究

NSDateFormatter之24小时制探究 24小时制显示 自定义时间格式中,"HH"代表24小时制, "hh"代表12小时制,苹果官网的文档中是这么写的, The repres...
  • sixiuerfeng
  • sixiuerfeng
  • 2014年11月10日 17:44
  • 1783

【android】只有小时和分钟的弹出式时间选择器

一、这是什么鬼在最近的项目中需要用到一个只选择小时和分钟的时间选择器,在网上看了以后发现没有合适的,于是自己参考了一些例子后写了一个,并把它发上来,有需要的可以参考。另外本人也是弱菜,欢迎大家指教。下...
  • Jason___Lu
  • Jason___Lu
  • 2015年06月03日 00:08
  • 4885

绘制窗体时防止闪烁

原文在这里:如何在绘画窗口时防止闪烁 http://www.catch22.net/tuts/flicker.asp ===============================...
  • leehong2005
  • leehong2005
  • 2013年02月24日 22:05
  • 1219

Java Calendar 类的时间操作

Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是"Gregorian Calendar"。也就是我们在...
  • zhangfei2018
  • zhangfei2018
  • 2015年09月11日 11:54
  • 1731

JFreeChart笔记 (四) 时间序列图:自动定位时间点

前一节我们学会了如何根据自己需要设置图标的显示样式,但是我们之前用到的模拟数据都是通过series.add(new Month(1, 2002), 142.9)这种方式添加的。我们每添加一个数据点就要...
  • idwtwt
  • idwtwt
  • 2014年09月19日 10:26
  • 1245

win32窗口程序的详细注释

// win32project.cpp : Defines the entry point for the application. // #include "stdafx.h" #include ...
  • jkhere
  • jkhere
  • 2013年06月17日 16:26
  • 1296

win32 API界面编程---窗口

-Window Classes分类 预定义窗口类: 1.窗口类类别 1.1.系统类—由系统注册 Button–按钮 ComboBox–组合框 Edit–编辑框 ListBox–列表框 ...
  • x13262608581
  • x13262608581
  • 2017年11月18日 16:17
  • 199

【win32】vs2010的窗体程序Helloworld

本来,mfc都已经是很落后的东西,现在写窗体都用C#,提到vs的窗体大家都想到c#。虽然如此,但本来了解Windows窗体的编程机制,同时又本着vc6可以实现的东西,vs都可以实现而且更进步的理念,同...
  • yongh701
  • yongh701
  • 2017年02月06日 20:27
  • 2882

跟我一起学Windows界面封装(一) 之 基础篇:Win32 API

一、 初篇 Win32应用程序可以分成两大类:控制台程序和Windows窗口界面程序。其中控制台程序的入口是main(或_tmain),而窗口界面程序的入口函数是WinMain(或_tWinMain...
  • cheneywong
  • cheneywong
  • 2013年04月25日 09:15
  • 1493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:24小时学DX之第一小时——win32窗体
举报原因:
原因补充:

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