windows SDK程序的模板
来源:互联网 发布:pychram软件运行环境 编辑:程序博客网 时间:2024/05/22 00:47
#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;//窗口函数声明//WinMain函数是所有Windows应用程序的入口,类似c语言中的main函数其功能是完成一系列的定义和初始化,并产生消息循环。int APIENTRY WinMain(HINSTANCE hInstance, //应用程序当前实例句柄 HINSTANCE hPrevInstance, //应用程序其他实例句柄 LPSTR lpCmdLine, //指向函数命令行参数的指针 int nCmdShow //应用程序开始执行时窗口显示方式的整数值标志 ) {//初始化,初始化包括窗口类的定义、注册、创建窗口实例和显示窗口四部分HWND hwnd; //定义窗口类结构句柄MSG Msg; //定义消息结构变量WNDCLASS wndclass;//定义窗口类结构变量 //定义窗口类的各种属性 wndclass.style =CS_HREDRAW|CS_VREDRAW; //改变窗口大小则重画 wndclass.lpfnWndProc=WndProc; //定义窗口处理函数 wndclass.cbClsExtra=0; //窗口类无扩展 wndclass.cbWndExtra=0; //窗口实例无扩展 wndclass.hInstance=hInstance; //注册窗口类实例句柄 wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); // 窗口采用箭头光标 wndclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); //窗口背景为白色 wndclass.lpszMenuName=NULL; //窗口无菜单 wndclass.lpszClassName="windows窗口创建"; //窗口类名 //以下是窗口类的注册-----------Windows系统本身提供部分预定义的窗口类,程序员也可以自定义窗口类,窗口类必须先注册后使用。if(!RegisterClass(&wndclass)) //如果注册失败 发出警告return false;//创建窗口 hwnd=CreateWindow( "windows窗口创建", //窗口类名,创建窗口时一定要基于我们已经注册过的窗口类名,即"窗口"。 "windows窗口创建", //窗口标题名 WS_OVERLAPPEDWINDOW, //窗口的风格 重叠式窗口 CW_USEDEFAULT,CW_USEDEFAULT, //窗口左上角坐标默认值 CW_USEDEFAULT,CW_USEDEFAULT, //窗口的高和宽为缺省值 NULL, //此窗口无父窗口 NULL, //此窗口无子菜单 hInstance, //创建此窗口的应用程序的当前句柄 NULL //不使用该值,此窗口无创建参数); //显示窗口 ShowWindow(hwnd,nCmdShow); //更新和绘制窗口用户区 UpdateWindow(hwnd); //消息循环 while(GetMessage(&Msg,NULL,0,0)) //GetMessage()函数是从调用线程的消息队列中取出一条消息;对于每一个应用程序窗口线程,操作系统都会为其建立一个消息队列,当我们的窗口有消息时(即所有与这个窗口线程相关的消息),操纵系统会把这个消息放到该线程的消息队列当中,我们的窗口程序就通过这个GetMessage()函数从自己的消息队列中取出一条一条具体的消息并进行响应操作。 { TranslateMessage(&Msg);//对"消息对"的转化,如对键盘的WM_KEYDOWN和WM_KEYUP消息对转化为WM_CHAR消息,并且将转换后的新消息投递到我们的消息队列中去,这个转化操作不会影响原来的消息,只会产生一个新的消息。 DispatchMessage(&Msg);//DispatchMessage()函数是将我们取出的消息传到窗口的回调函数去处理;可以理解为该函数将取出的消息路由给操作系统,然后操作系统去调用我们的窗口回调函数对这个消息进行处理。 } return Msg.wParam; //消息循环结束 即程序结束时 将信息返回系统 }//窗口函数LRESULT CALLBACK WndProc(HWND hwnd,UINT message, WPARAM wParam,LPARAM lParam) {//根据消息队列值转相应的消息处理 switch(message){case WM_PAINT:HDC hdc;PAINTSTRUCT ps;hdc=BeginPaint(hwnd,&ps); TextOut(hdc,10,20,"哈哈,Windows编程创建的窗口!",28);EndPaint(hwnd,&ps);return 0;case WM_DESTROY: PostQuitMessage(0);return 0;} return DefWindowProc(hwnd,message,wParam,lParam);}
0 0
- windows SDK程序的模板
- Windows SDK程序的基本框架
- 一个典型的Windows SDK程序
- windows SDK程序的框架分析
- windows sdk程序模板(用已有的对话框资源创建主窗口)
- Windows SDK 程序编写过程
- 第一个windows sdk程序
- VC SDK windows服务程序
- 用Delphi写一个Windows下的纯SDK程序
- Windows 系统 的 SDK 程序开发心得 小总结
- Windows程序设计(SDK)窗口过程---程序 的关闭
- 用CFree写的Windows SDK 画线程序
- Windows程序基本结构-Windows SDK笔记
- 用real producer sdk和windows media sdk开发程序的第一步
- windows的sdk编程
- sdk的windows版本
- 【VC编程】笔记2--SDK编程的模板程序/MFC消息映射机制的本质解析
- Windows SDK编程之一 窗口示例程序
- Socket通信模式和URL通信模式
- 欢迎使用CSDN-markdown编辑器
- 银行家算法(1)——概念与举例说明(多进程管理资源分配避免死锁)
- leetcode_065 Valid Number
- SVM-4-核函数
- windows SDK程序的模板
- 使用JsonP进行跨域请求
- Swap Nodes in Pairs
- stm32f103 RTC周期性待机唤醒(一)
- HDU 5646 DZY Loves Partition (数学)
- Oracle数据仓库创建教程
- 1000搬桌子问题 ACID 00729209
- C#拼音联想式选择
- 目标跟踪:背景建模重要博文