应用程序窗口示例

 1 //Windows.h文件中包含应用程序中所需的数据类型和数据结构的定义
 2 #include <Windows.h>
 3 #include <tchar.h>
 4
 5 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);            //窗口函数说明
 6 //------------------------------以下是入口函数的代码------------------------------
 7 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 8 {
 9     WNDCLASSEX wcex;
10     HWND hWnd;
11     MSG msg;
12     TCHAR szWindowClass[] = L"窗口示例";                    //窗口类名
13     TCHAR szTitle[] = L"My Windows";                        //窗口标题名
14
15     //------------------------------以下初始化窗口类------------------------------
16     wcex.cbSize = sizeof(WNDCLASSEX);                        //窗口类的大小
17     wcex.style = 0;                                        //窗口类型为默认类型
18     wcex.lpfnWndProc = WndProc;                            //窗口处理函数为WndProc
19     wcex.cbClsExtra = 0;                                    //窗口类无扩展
20     wcex.cbWndExtra = 0;                                    //窗口实例无扩展
21     wcex.hInstance = hInstance;                            //当前实例句柄
22     wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
23                                                         //窗口的图标为默认图标
24     wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
25                                                         //窗口采用箭头光标
26     wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);    //窗口背景为白色
27     wcex.lpszMenuName = NULL;                                //窗口中无菜单
28     wcex.lpszClassName = szWindowClass;                        //窗口类名为“窗口示例”
29     wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
30                                                         //窗口的小图标为默认图标
31
32     //------------------------------以下进行窗口类的注册------------------------------
33     if (!RegisterClassEx(&wcex))                            //如果注册失败则发出警告
34     {
35         MessageBox(NULL, _T("窗口类注册失败!"), _T("窗口注册"), NULL);
36         return 1;
37     }
38     //------------------------------以下创建窗口------------------------------
39     hWnd = CreateWindow(
40         szWindowClass,                                    //窗口类名
41         szTitle,                                            //窗口实例的标题名
42         WS_OVERLAPPEDWINDOW,                                //窗口的风格
43         CW_USEDEFAULT, CW_USEDEFAULT,                        //窗口左下角坐标为默认值
44         CW_USEDEFAULT, CW_USEDEFAULT,                        //窗口的高和宽为默认值
45         NULL,                                            //此窗口无父窗口
46         NULL,                                            //此窗口无主菜单
47         hInstance,                                        //创建此窗口应用程序的当前句柄
48         NULL                                                //不使用该值
49         );
50     if (!hWnd)                                            //如果创建窗口失败则发出警告
51     {
52         MessageBoxW(NULL, L"创建窗口失败!", _T("创建窗口"), NULL);
53         return 1;
54     }
55     ShowWindow(hWnd, nCmdShow);                            //显示窗口
56     UpdateWindow(hWnd);                                    //绘制用户区
57     while (GetMessage(&msg, NULL, 0, 0))                    //消息循环
58     {
59         TranslateMessage(&msg);
60         DispatchMessage(&msg);
61     }
62
63     return(int)msg.wParam;                                    //程序终止时将信息返回系统
64 }
65 //------------------------------以下是窗口函数的代码------------------------------
66 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
67 {
68     switch (message)
69     {
70     case WM_DESTROY:
71         PostQuitMessage(0);                                //调用PostQuitMessage发出WM_QUIT消息
72         break;
73     default:
74         return DefWindowProc(hWnd, message, wParam, lParam);
75                                                         //默认时采用系统消息默认处理函数
76         break;
77     }
78     return 0;
79 }
时间: 2024-10-04 22:15:41

应用程序窗口示例的相关文章

Android开发5:应用程序窗口小部件App Widgets的实现

前言 本次主要是实现一个Android应用,实现静态广播.动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~ 首先,我们简单说一下Widget是一个啥玩意~ 应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widget provider来发布一个Widget.可以容纳其它App Widget的应用程序组件被称为App Widge

Win32 程序开发:创建一个应用程序窗口

一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSNAME"; WCHAR g_lpszWindowName[] = L"哈喽,新的征程"; // 函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 应用程序主函数 INT APIENTRY WinMain(H

获取 window任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标

获取 window任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标 1.功能描述 获取到window任务栏已经打开的应用程序的窗口图标.如下:(要获取到QQ,浏览器,文件夹的图标,但是任务栏中隐藏的图标不显示) 2.使用技术及工具 JAVA,JNA,eclipse. 需要去下载JNA的包(一个是jna.jar,一个时jna-platform.jar):包的下载在文章结尾提供地址. 3.实现思路 (1).一个window任务栏打开的应用程序也就是一个前台进程,所以先通过JNA获取所有

Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析

http://blog.csdn.net/luoshengyang/article/details/8223770 在前文中,我们分析了Android应用程序窗口的运行上下文环境的创建过程.由此可知,每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口.由此又可知,Activity只不过是一个高度抽象的UI组件,它的具体UI实现其实是由其它的一系列对象来实现的.在本文中,我们就将详细分析Android应用程序窗口

Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析

在前两文中,我们分析了Activity组件的窗口对象和视图对象的创建过程.Activity组件在其窗口对象和视图对象创建完成之后,就会请求与WindowManagerService建立一个连接,即请求WindowManagerService为其增加一个WindowState对象,用来描述它的窗口状态.在本文中,我们就详细分析Activity组件与WindowManagerService的连接过程. 我们从两方面来看Activity组件与WindowManagerService服务之间的连接.一方

Android应用程序窗口(Activity)的视图对象(View)的创建过程分析

从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口.每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图.应用程序窗口视图是真正用来实现UI内容和布局的,也就是说,每一个Activity组件的UI内容和布局都是通过与其所关联的一个Window对象的内部的一个View对象来实现的.在本文中,我们就详细分析应用程序窗口视图的创建过程. 在前面Android应用程序窗口(Activity)实现框架简要介绍和学习计划一文中提到,应用程序

Android应用程序窗口View的measure过程

Android应用程序的界面是View组成的,这些View以树形结构组织,它们存在着父子关系,其中,子view位于父view里面,因此,在绘制一个Android应用程序窗口的View之前,我们首先要确定它里面的各个子view在父view里面的大小以及位置.确定各个子view在父view里面的大小以及位置的过程又称为测量过程和布局过程.测量和布局完后,就可以绘制view了. 参考上一篇文章Android应用程序窗口View的创建过程,可以知道Android应用程序窗口的根View是DecorVie

实现程序窗口不断变化的动画图标

利用定时器和可在窗口创建完成后修改其窗口图标的SetClassLong函数,在程序中每隔一定时间就调用一次这个函数,让窗口图标循环显示预先准备好的一组图标中的下一个图标,就可实现图标不断变化的动画效果: 1.加载图标资源 在程序的资源窗口中,插入/引入新的一组图标资源 在程序的框架类CMainFrame类中添加一个成员变量,用来存放这组图标的句柄 在CMainFrame类的OnCreate函数中利用LoadIcon函数加载这组图标: int CMainFrame::OnCreate(LPCREA

修改应用程序窗口的外观

1.在窗口创建之前修改 须在程序的框架类CMainFrame类的PreCreateWindow虚函数中进行: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {     if( !CFrameWnd::PreCreateWindow(cs) )         return FALSE;     // TODO: Modify the Window class or styles here by modifying     //  the C