Windows SDK应用

原创 2015年11月21日 00:15:57
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//设计窗口类
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;//附加内存 一般设置为0
wndcls.cbWndExtra = 0;//附加内存 一般设置为0
wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//背景画刷
wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);//鼠标移动进后的光标图标
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);//窗口左上角图标
wndcls.hInstance = hInstance;//实例句柄
wndcls.lpfnWndProc = WinSunProc;//指向窗口过程函数
wndcls.lpszClassName = "sunxin2006";//窗口类的名字 在创建窗口过程中 第一个参数即为此
wndcls.lpszMenuName = NULL;//菜单资源的地址 再次先设置为空
wndcls.style = CS_HREDRAW | CS_VREDRAW;//窗口的样式,常用有CS_HREDRAW 水平重绘 CS_VREDRAM 垂直重绘 CS_NOCLOSE 窗口无关闭按钮
RegisterClass(&wndcls);//注册窗口类
//创建窗口
HWND hwnd;
hwnd = CreateWindow("sunxin2006", "http://www.baidu.com", WS_OVERLAPPEDWINDOW, 0, 0, 600, 400, NULL, NULL, hInstance, NULL);
//第一个参数为设计窗口时的lpszClassName,第二个为在标题栏中显示的文字,第三个为窗口类型 如是否有标题 是否有菜单等
//显示及刷新窗口
ShowWindow(hwnd, SW_SHOWNORMAL);//第二个参数表示显示窗口的状态 如最大化 最小化 隐藏等等
UpdateWindow(hwnd);//更新窗口
//定义消息结构体 开始消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//窗口过程函数
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf_s(szChar, "char code is %d", wParam);
MessageBox(hwnd, szChar, "char", 0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd, "mouse clicked", "message", 0);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc, 0, 50, "程序员之家", strlen("程序员之家"));
ReleaseDC(hwnd, hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(hwnd, &ps);
TextOut(hDC, 0, 0, "http://www.baidu.com", strlen("http://www.baidu.com"));
EndPaint(hwnd, &ps);
break;
case WM_CLOSE:
if (IDYES == MessageBox(hwnd, "是否真的结束?", "message", MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android开发入门之一--在Windows上构建Android应用开发环境( SDK Anroid 2.3 + eclipse3.6.2 + ADT-10.0.0)

1 JDK安装 官方下载地址:http://download.oracle.com/otn-pub/java/jdk/6u25-b06/jdk-6u25-windows-i586.exe 2 SD...

Windows SDK应用程序窗口标题栏上显示自定义图标

本篇想通过手动直接编辑代码的方式(而不是可视化的方式)来操作使用自定义的图标。(以在窗口标题栏上显示自定义图标为例)        通过本篇,你将知道如何使用图标资源及实质,并有助于你理解在可视化方...

Windows通用应用开发手记-Behavior SDK概述

随着Visual Studio 2013的发布,New Behavior SDK也一起出现了。和Expression Blend SDK相似,包括各种内置行为(behavior和action),可以用...

Kinect for Windows SDK开发入门(四):景深数据处理 上

Kinect for Windows SDK开发入门(四):景深数据处理 上 发布:2012-06-12 | 作者:—— | 来源: 华强 | 查看:3392次 | 用户关注:体感游戏 K...

Win32 SDK基础(9)—— Windows 常用消息大全

一、Windows消息分布 消息范围 说 明 0 ~ WM_USER – 1 系统消息 WM_USER ~ 0x7FFF 自定义窗口类整数消息...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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